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)