thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James E. King III (JIRA)" <>
Subject [jira] [Commented] (THRIFT-4384) Using a concurrent client with cpp async is not safe.
Date Mon, 28 Jan 2019 03:10:00 GMT


James E. King III commented on THRIFT-4384:

The patch as posted does not apply clean.  Non-trivial to fix it up, please submit a pull

> Using a concurrent client with cpp async is not safe.
> -----------------------------------------------------
>                 Key: THRIFT-4384
>                 URL:
>             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,
>            Reporter: Michael Eiler
>            Priority: Critical
>              Labels: async
>          Time Spent: 10m
>  Remaining Estimate: 0h
> 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