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 <[email protected]> Authored: Thu Jun 8 19:21:34 2017 -0700 Committer: Jeff Jirsa <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
