thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Eiler (JIRA)" <>
Subject [jira] [Commented] (THRIFT-4384) Using multiple services simultaneously is not thread-safe.
Date Tue, 06 Feb 2018 10:18:00 GMT


Michael Eiler commented on THRIFT-4384:

So far this solution seems to work quite well for us. I am suprised that no one else has
the requirement to synchronize multiple services. Is there a better solution one should use?


Best Regards

> Using multiple services simultaneously is not thread-safe.
> ----------------------------------------------------------
>                 Key: THRIFT-4384
>                 URL:
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler, C++ - Library
>    Affects Versions: 0.10.0
>         Environment: Should affect all platforms but has been noticed first on Windows,
>            Reporter: Michael Eiler
>            Priority: Critical
>             Fix For: 0.12.0
> 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

View raw message