[ 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)