diff --git a/CHANGES.txt b/CHANGES.txt index 42de0dda20..e98b299852 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -114,6 +114,7 @@ Merged from 2.0: * Disable single sstable tombstone compactions for DTCS by default (CASSANDRA-9234) * IncomingTcpConnection thread is not named (CASSANDRA-9262) * Close incoming connections when MessagingService is stopped (CASSANDRA-9238) + * Fix streaming hang when retrying (CASSANDRA-9132) 2.1.5 diff --git a/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java b/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java index 33298bf6bd..77a35d667d 100644 --- a/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java +++ b/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java @@ -47,9 +47,16 @@ public class IncomingFileMessage extends StreamMessage { return new IncomingFileMessage(reader.read(in), header); } + catch (IOException eof) + { + // Reading from remote failed(i.e. reached EOF before reading expected length of data). + // This can be caused by network/node failure thus we are not retrying + throw eof; + } catch (Throwable t) { JVMStabilityInspector.inspectThrowable(t); + // Otherwise, we can retry session.doRetry(header, t); return null; }