Threading: Race condition and crash on QttpResponse::close
Opened this issue · 0 comments
ctenter-scs commented
Sometimes the server can run into a race condition while processing events, which leads to a memory access violation and causes the program to crash.
The main thread receives events from qt and calls the default event handler.
This eventually leads to a call to uv_write() on QttpResponse::close().
The second thread is started in HttpServer::startServer and runs a libuv event loop.
The issue seems to come from the uv_write() call in the main thread. According to the libuv devs, this call is not safe and should be moved to the event thread using uv_async_send:
https://groups.google.com/forum/#!topic/libuv/iHzv3x-VOr4