You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "David Lee (JIRA)" <ji...@apache.org> on 2016/02/18 04:28:18 UTC

[jira] [Commented] (THRIFT-3233) Fix ThreadManager::Impl::removeWorker worker join

    [ https://issues.apache.org/jira/browse/THRIFT-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15151681#comment-15151681 ] 

David Lee commented on THRIFT-3233:
-----------------------------------

It's not working.

> Fix ThreadManager::Impl::removeWorker worker join
> -------------------------------------------------
>
>                 Key: THRIFT-3233
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3233
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.9.2
>            Reporter: Paweł Janicki
>            Priority: Critical
>         Attachments: 0001-THRIFT-3233.-cpp-Fix-ThreadManager-Impl-removeWorker.patch
>
>
> ThreadManager::Impl::removeWorker is not joining worker properly.
> It possible that the not joined worker will continue to reference destructed ThreadManager's non-static members causing crash.
> It is caused by removeWorker() implementation which waits for workers to decrement the ThreadManager's workerCount_. Once value is decremented removeWorker() assumes the worker thread joined, while in fact the worker thread continues to execute some more code which adds the worker thread to destruction list which list may be just freed due to ThreadManager object destruction.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)