You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jj...@apache.org on 2017/06/09 10:55:14 UTC

cassandra git commit: NPE in IR cleanup when columnfamily has no sstables

Repository: cassandra
Updated Branches:
  refs/heads/trunk 10397a1bf -> ff29d6099


NPE in IR cleanup when columnfamily has no sstables

Patch by Jeff Jirsa; Reviewed by Marcus Eriksson for CASSANDRA-13585


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

Branch: refs/heads/trunk
Commit: ff29d609979aae2c584ec6e6cd370da56945dc18
Parents: 10397a1
Author: Jeff Jirsa <je...@jeffjirsa.net>
Authored: Thu Jun 8 19:21:34 2017 -0700
Committer: Jeff Jirsa <je...@jeffjirsa.net>
Committed: Fri Jun 9 03:54:38 2017 -0700

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../repair/consistent/PendingAntiCompaction.java      |  6 ++++--
 .../repair/consistent/PendingAntiCompactionTest.java  | 14 ++++++++++++++
 3 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff29d609/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 1f6c215..4425aad 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0
+ * NPE in IR cleanup when columnfamily has no sstables (CASSANDRA-13585)
  * Fix Randomness of stress values (CASSANDRA-12744)
  * Allow selecting Map values and Set elements (CASSANDRA-7396)
  * Fast and garbage-free Streaming Histogram (CASSANDRA-13444)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff29d609/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java b/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
index dd71537..f183d14 100644
--- a/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
+++ b/src/java/org/apache/cassandra/repair/consistent/PendingAntiCompaction.java
@@ -69,8 +69,10 @@ public class PendingAntiCompaction
 
         void abort()
         {
-            txn.abort();
-            refs.release();
+            if (txn != null)
+                txn.abort();
+            if (refs != null)
+                refs.release();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff29d609/test/unit/org/apache/cassandra/repair/consistent/PendingAntiCompactionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/repair/consistent/PendingAntiCompactionTest.java b/test/unit/org/apache/cassandra/repair/consistent/PendingAntiCompactionTest.java
index 2126835..3119453 100644
--- a/test/unit/org/apache/cassandra/repair/consistent/PendingAntiCompactionTest.java
+++ b/test/unit/org/apache/cassandra/repair/consistent/PendingAntiCompactionTest.java
@@ -255,6 +255,20 @@ public class PendingAntiCompactionTest
         result.abort();  // releases sstable refs
     }
 
+    @Test
+    public void pendingRepairNoSSTablesExist() throws Exception
+    {
+        cfs.disableAutoCompaction();
+
+        Assert.assertEquals(0, cfs.getLiveSSTables().size());
+
+        PendingAntiCompaction.AcquisitionCallable acquisitionCallable = new PendingAntiCompaction.AcquisitionCallable(cfs, FULL_RANGE, UUIDGen.getTimeUUID());
+        PendingAntiCompaction.AcquireResult result = acquisitionCallable.call();
+        Assert.assertNotNull(result);
+
+        result.abort();  // There's nothing to release, but we should exit cleanly
+    }
+
     /**
      * anti compaction task should be submitted if everything is ok
      */


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org