thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "chenguang9239 (Jira)" <j...@apache.org>
Subject [jira] [Created] (THRIFT-4963) TNonblockingServer dead lock between addTask(IOThread) and notify(workerThread)
Date Tue, 24 Sep 2019 04:04:00 GMT
chenguang9239 created THRIFT-4963:
-------------------------------------

             Summary: TNonblockingServer dead lock between addTask(IOThread) and notify(workerThread)
                 Key: THRIFT-4963
                 URL: https://issues.apache.org/jira/browse/THRIFT-4963
             Project: Thrift
          Issue Type: Bug
    Affects Versions: 0.12.0
            Reporter: chenguang9239


when using TNonblockingServer(with thread pool),I found a dead lock in high QPS status.

The worker thread will call notifyIOThread when it finishes its work, then call TNonblockingIOThread::notify
and wait for write event in poll without timeout. If there is a write event, worker thread
will return and release threadManager->mutex;

The IO thread will call addTask when it gets requests. And IO threads will lock the same
mutex in addTask without a timeout, so IO thread can not write data to socket, there is a
dead lock.

I found there is no method to set a timeout of the locking operation in addTask. Is it a bug
of thrift 0.12.0?



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

Mime
View raw message