You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (Jira)" <ji...@apache.org> on 2020/03/29 16:32:00 UTC

[jira] [Resolved] (THRIFT-4963) TNonblockingServer blocked int addTask(IOThread) and notify(workerThread)

     [ https://issues.apache.org/jira/browse/THRIFT-4963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jens Geyer resolved THRIFT-4963.
--------------------------------
    Fix Version/s: 0.14.0
         Assignee: Kanishth Karthik
       Resolution: Fixed

> TNonblockingServer blocked int addTask(IOThread) and notify(workerThread)
> -------------------------------------------------------------------------
>
>                 Key: THRIFT-4963
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4963
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.12.0
>            Reporter: chenguang9239
>            Assignee: Kanishth Karthik
>            Priority: Major
>             Fix For: 0.14.0
>
>         Attachments: CppClient.cpp, CppServer.cpp, deadlock_thread.png, wait_timeout.png
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> hello!
> when using c++ TNonblockingServer(with thread pool),I found it blocked in high QPS status.
> I used pstack to print thread stack and found worker thread and IO thread blocked at:
> The worker thread will call notifyIOThread when it handle expired task, then call TNonblockingIOThread::notify and wait for POLLOUT in poll without timeout. 
> The IO thread will call addTask when it gets requests. And IO threads will lock threadManager->mutex_ in addTask without a timeout
> Is it a bug of thrift 0.12.0?



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