Stack Overflow returned to queries while upgrading

patch by Sylvain Lebresne; reviewed by Tyler Hobbs for CASSANDRA-12527


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/13928935
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/13928935
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/13928935

Branch: refs/heads/cassandra-3.9
Commit: 139289356bb9615c688778b78243ba8007b22d81
Parents: 20dd606
Author: Sylvain Lebresne <sylv...@datastax.com>
Authored: Wed Aug 31 17:13:19 2016 +0200
Committer: Sylvain Lebresne <sylv...@datastax.com>
Committed: Thu Sep 1 11:10:08 2016 +0200

----------------------------------------------------------------------
 CHANGES.txt                                       |  1 +
 .../org/apache/cassandra/db/LegacyLayout.java     | 18 ++++++++++--------
 2 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/13928935/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0d425d6..d111d11 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.9
+ * Stack Overflow returned to queries while upgrading (CASSANDRA-12527)
  * Fix legacy regex for temporary files from 2.2 (CASSANDRA-12565)
  * Add option to state current gc_grace_seconds to tools/bin/sstablemetadata 
(CASSANDRA-12208)
  * Fix file system race condition that may cause LogAwareFileLister to fail to 
classify files (CASSANDRA-11889)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/13928935/src/java/org/apache/cassandra/db/LegacyLayout.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/LegacyLayout.java 
b/src/java/org/apache/cassandra/db/LegacyLayout.java
index 1dd4c5d..65f9d3f 100644
--- a/src/java/org/apache/cassandra/db/LegacyLayout.java
+++ b/src/java/org/apache/cassandra/db/LegacyLayout.java
@@ -714,16 +714,18 @@ public abstract class LegacyLayout
 
             protected LegacyCell computeNext()
             {
-                if (currentRow.hasNext())
-                    return currentRow.next();
+                while (true)
+                {
+                    if (currentRow.hasNext())
+                        return currentRow.next();
 
-                if (!iterator.hasNext())
-                    return endOfData();
+                    if (!iterator.hasNext())
+                        return endOfData();
 
-                Pair<LegacyRangeTombstoneList, Iterator<LegacyCell>> row = 
fromRow(metadata, iterator.next());
-                deletions.addAll(row.left);
-                currentRow = row.right;
-                return computeNext();
+                    Pair<LegacyRangeTombstoneList, Iterator<LegacyCell>> row = 
fromRow(metadata, iterator.next());
+                    deletions.addAll(row.left);
+                    currentRow = row.right;
+                }
             }
         };
 

Reply via email to