Skip to content

Threading: Race condition and crash on QttpResponse::close #31

@ctenter-scs

Description

@ctenter-scs

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions