[
https://issues.apache.org/jira/browse/THRIFT-3797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jens Geyer updated THRIFT-3797:
-------------------------------
Component/s: (was: Delphi - Library)
> 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
> Reporter: Kyle Johnson
> Assignee: Kyle Johnson
> Fix For: 0.10.0
>
>
> 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)