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

Jens Geyer updated THRIFT-5480:
-------------------------------
    Summary: TThreadPoolAsyncServer using TFramedTransport mistakenly drops 
client  (was: Netstd - TThreadPoolAsyncServer using TFramedTransport mistakenly 
drops client)

> TThreadPoolAsyncServer using TFramedTransport mistakenly drops client
> ---------------------------------------------------------------------
>
>                 Key: THRIFT-5480
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5480
>             Project: Thrift
>          Issue Type: Bug
>          Components: netstd - Library
>    Affects Versions: 0.15.0
>            Reporter: Ioannis Efthymiou
>            Assignee: Jens Geyer
>            Priority: Major
>              Labels: Oneway, TFramedTransport, TThreadPoolAsyncServer
>         Attachments: 
> 0001-Reset-message-size-in-TFramedTransport.ReadFrameAsyn-1.patch
>
>
> TThreadPoolAsyncServer using TFramedTransport silently drops a client service 
> using oneway methods when the second message is bigger than the first one.
> I have an application implementing a one way service, depending on it's 
> state. I created a TThreadpoolAsync server using the netstd 0.15 version, and 
> I noticed that after a point, the notifications stopped coming, but there was 
> no error on either side. The methods all worked individually, but some did 
> not work after others.
> Eliminating all possible causes on my side, I debugged the source code, and 
> discovered that a transport exception was thrown from TEndpointTransport when 
> a message size was bigger than the proceeding one, because 
> TFramedTransport.ReadFrameAsync was not resetting the message size when it 
> was done reading it, thus causing TEndpointTransport.UpdateKnownMessageSize 
> to throw the exception. The server interpreted the exception as if the client 
> had disconnected, so it silently ignored it.
>  
> I've attached a patch that corrects this behaviour



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to