You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King III (JIRA)" <ji...@apache.org> on 2019/01/27 15:42:00 UTC

[jira] [Commented] (THRIFT-4384) Using multiple services simultaneously is not thread-safe.

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

James E. King III commented on THRIFT-4384:
-------------------------------------------

Fix makes sense to me.  Each instance was getting its own TConcurrentClientSyncInfo and therefore there was no syncing at all.  By making it shared, that handles the root cause.  I'll submit a PR.

> Using multiple services simultaneously is not thread-safe.
> ----------------------------------------------------------
>
>                 Key: THRIFT-4384
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4384
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler, C++ - Library
>    Affects Versions: 0.10.0, 0.11.0, 0.12.0
>         Environment: Should affect all platforms but has been noticed first on Windows, x86_64.
>            Reporter: Michael Eiler
>            Priority: Critical
>
> I'm using the generated *ServiceConcurrentClient classes. They should allow me to call multiple functions at the same time.
> The issue as that the ::apache::thrift::async::TConcurrentClientSyncInfo class is a member of the generated service. If I have a project with multiple services sharing the same connection (protocol) with each other, the services will not be mutually excluded from reading on the same socket. 
> I did a small test with patching the generated code and injecting the same instance of TConcurrentClientSyncInfo into all my services and everything was fine.
> Question: Do you need a small project to reproduce this or is it obvious enough? Just check out any generated code and you will see that the TConcurrentClientSyncInfo is not shared between different services.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)