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

James E. King, III commented on THRIFT-1931:
--------------------------------------------

I'm inclined to resolve this issue as "Won't Fix" as the behavior is intended, 
so I am going to do that.

> Sending a frame size of zero to a TNonblockingServer causes an assertion 
> failure
> --------------------------------------------------------------------------------
>
>                 Key: THRIFT-1931
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1931
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.9
>         Environment: Ubuntu 10.04 and 12.04, both 64-bit
>            Reporter: Martin Michelsen
>              Labels: TNonblockingServer
>
> TNonblockingServer::TConnection::workSocket doesn't check if readWant_ is 
> zero before returning. Sending a frame with a size of zero leads to an 
> assertion failure:
> {{src/thrift/server/TNonblockingServer.cpp:494: void 
> apache::thrift::server::TNonblockingServer::TConnection::workSocket(): 
> Assertion `readBufferPos_ < readWant_' failed.}}
> (You can reproduce this behavior on a TNonblockingServer by doing {{echo -e 
> '\0\0\0\0' | nc server port}}.)
> It can probably be fixed by checking if readWant_ is zero before the 
> transition() call in workSocket, and disconnecting the client if so (just 
> like what happens if readWant_ is too large). Not sure if this is necessarily 
> the right thing to do though.



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

Reply via email to