Kyle Johnson created THRIFT-3797:
------------------------------------

             Summary: Generated Delphi processor shouldn't error out on timed 
out exceptions
                 Key: THRIFT-3797
                 URL: https://issues.apache.org/jira/browse/THRIFT-3797
             Project: Thrift
          Issue Type: Bug
          Components: Delphi - Compiler, Delphi - Library
            Reporter: Kyle Johnson


When the generated service processor waits on a new message to arrive in the 
TProcessorImpl.Process() function, it treats all exceptions identically, 
causing the function to return False when an exception is raised.  When 
returning false, the server treats this as an error, aborts the processing loop 
and subsequently aborts the connection, tears down all connection information 
and then waits for a new connection.

However, this is undesired in the situation where a message hasn't arrived for 
longer than the configured timeout of the connection.  In this instance, the 
server shouldn't consider the timeout to be an error, because it is desired to 
have the server continue running even when an RPC call hasn't been received in 
longer than the duration of the timeout.

The patch fixes this issue by catching the timeout exception and returning 
success even when a timeout occurs, allowing the server to continue execution 
with the current connection.  This behavior mirrors what happens in the C++ 
library in TConnectedClient.cpp, where in TConnectedClient.run(), TIMED_OUT 
exception types don't cause the processing loop to abort.



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

Reply via email to