You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Rasmus Johansson (Jira)" <ji...@apache.org> on 2020/05/04 06:33:00 UTC

[jira] [Created] (THRIFT-5194) Race condition(?) in TEvhttpClientChannel if event_base_loop run in separate thread.

Rasmus Johansson created THRIFT-5194:
----------------------------------------

             Summary: Race condition(?) in TEvhttpClientChannel if event_base_loop run in separate thread.
                 Key: THRIFT-5194
                 URL: https://issues.apache.org/jira/browse/THRIFT-5194
             Project: Thrift
          Issue Type: Bug
          Components: C++ - Library
    Affects Versions: 0.13.0
         Environment: Running on minideb (Debian image for docker)  in docker container.
            Reporter: Rasmus Johansson


If I run the event_base_loop() in a separate thread, and make the RPC calls from the main thread, the main thread can be preempted between line 85 and line 90 in TEvhttpClientChannel.cpp by the separate thread . That is, it adds the event to the event_base, but it does not add the request to the completion queue, causing an assert failure for the separate thread in TEvHttpClientChannel::finish (assert !completionQueue.empty()).

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)