Jon Meredith created CASSANDRA-17510:
----------------------------------------

             Summary: Streaming sessions longer than 3 minutes fail with timeout
                 Key: CASSANDRA-17510
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17510
             Project: Cassandra
          Issue Type: Bug
            Reporter: Jon Meredith


Streaming sessions that take longer than 3 minutes will fail with an 
InputTimeoutException on the streaming control channel connection.

CASSANDRA-16927 refactored the streaming code as part of CEP-10 to clean up 
some abstractions. As part of those changes the StreamDeserializingTask 
(formerly StreamingInboundHandler) had a check removed that ensured data was 
present before reading from the AsyncStreamingInputPlus used by 
NettyStreamingChannel to pass incoming bytes to be deserialized off the main 
Netty event loop threads. When {{reBuffer}ing from the input, 
AsyncStreamingInputPlus times out if no data is received in three minutes.

It is perfectly valid for no messages to be received over the control 
connection for longer than three minutes - pre CASSANDRA-16927 just doesn’t do 
the read until data is present, so it doesn’t hit the timeout. A possible 
solution is to replace throwing the InputTimeoutException with a check that the 
channel is still open and retry.

Note this is unrelated to the streaming protocol KeepAlive removal - that had a 
default timeout of five minutes so would not have been effective anyway.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to