diff --git a/CHANGES.txt b/CHANGES.txt index c785f84f66a5..aaad3e77f63c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -16,6 +16,8 @@ Merged from 3.0: for a table that's in system_schema.tables (CASSANDRA-13180) Merged from 2.2: * Use only one file pointer when creating commitlog segments (CASSANDRA-12539) +Merged from 2.1: + * Coalescing strategy can enter infinite loop (CASSANDRA-13159) 3.10 * Fix secondary index queries regression (CASSANDRA-13013) diff --git a/src/java/org/apache/cassandra/utils/CoalescingStrategies.java b/src/java/org/apache/cassandra/utils/CoalescingStrategies.java index 0aa980fc7196..1a3c13d6490b 100644 --- a/src/java/org/apache/cassandra/utils/CoalescingStrategies.java +++ b/src/java/org/apache/cassandra/utils/CoalescingStrategies.java @@ -100,7 +100,7 @@ private static boolean maybeSleep(int messages, long averageGap, long maxCoalesc { // only sleep if we can expect to double the number of messages we're sending in the time interval long sleep = messages * averageGap; - if (sleep > maxCoalesceWindow) + if (sleep <= 0 || sleep > maxCoalesceWindow) return false; // assume we receive as many messages as we expect; apply the same logic to the future batch: