Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3FC25180B9 for ; Thu, 11 Feb 2016 07:30:30 +0000 (UTC) Received: (qmail 3409 invoked by uid 500); 11 Feb 2016 07:30:30 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 3376 invoked by uid 500); 11 Feb 2016 07:30:30 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 3361 invoked by uid 99); 11 Feb 2016 07:30:30 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Feb 2016 07:30:30 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id E80CEE0E1F; Thu, 11 Feb 2016 07:30:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: marcuse@apache.org To: commits@cassandra.apache.org Date: Thu, 11 Feb 2016 07:30:29 -0000 Message-Id: <11ecb82607cb4b2eb349d7e5f84a83af@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [01/10] cassandra git commit: Properly release sstable reference when doing offline scrub Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 6c6b7e40c -> 96549946f refs/heads/cassandra-2.2 d7195060c -> 7d7ff7f3c refs/heads/cassandra-3.0 89c558a43 -> d4364075d refs/heads/trunk 7863bd3bf -> 5c2a4ef28 Properly release sstable reference when doing offline scrub Patch by marcuse; reviewed by Stefania for CASSANDRA-10697 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/96549946 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/96549946 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/96549946 Branch: refs/heads/cassandra-2.1 Commit: 96549946fe994ea8311e72e5bf6f51c2124f7bb4 Parents: 6c6b7e4 Author: Marcus Eriksson Authored: Tue Feb 9 09:53:59 2016 +0100 Committer: Marcus Eriksson Committed: Thu Feb 11 08:20:47 2016 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../apache/cassandra/db/compaction/Scrubber.java | 4 ++++ .../apache/cassandra/tools/StandaloneScrubber.java | 5 ++++- .../Keyspace1-Standard3-jb-1-Summary.db | Bin 63 -> 75 bytes .../Keyspace1-StandardInteger1-ka-2-Summary.db | Bin 80 -> 112 bytes 5 files changed, 9 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/96549946/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 3bbef11..9f51291 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.14 + * Properly release sstable ref when doing offline scrub (CASSANDRA-10697) * Improve nodetool status performance for large cluster (CASSANDRA-7238) * Make it clear what DTCS timestamp_resolution is used for (CASSANDRA-11041) * Gossiper#isEnabled is not thread safe (CASSANDRA-11116) http://git-wip-us.apache.org/repos/asf/cassandra/blob/96549946/src/java/org/apache/cassandra/db/compaction/Scrubber.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/compaction/Scrubber.java b/src/java/org/apache/cassandra/db/compaction/Scrubber.java index e02f901..8bfd37b 100644 --- a/src/java/org/apache/cassandra/db/compaction/Scrubber.java +++ b/src/java/org/apache/cassandra/db/compaction/Scrubber.java @@ -300,6 +300,8 @@ public class Scrubber implements Closeable newInOrderSstable = inOrderWriter.closeAndOpenReader(sstable.maxDataAge); if (!isOffline) cfs.getDataTracker().addSSTables(Collections.singleton(newInOrderSstable)); + else if (newInOrderSstable != null) + newInOrderSstable.selfRef().release(); outputHandler.warn(String.format("%d out of order rows found while scrubbing %s; Those have been written (in order) to a new sstable (%s)", outOfOrderRows.size(), sstable, newInOrderSstable)); } @@ -318,6 +320,8 @@ public class Scrubber implements Closeable finally { controller.close(); + if (isOffline && newSstable != null) + newSstable.selfRef().release(); } if (newSstable == null) http://git-wip-us.apache.org/repos/asf/cassandra/blob/96549946/src/java/org/apache/cassandra/tools/StandaloneScrubber.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/tools/StandaloneScrubber.java b/src/java/org/apache/cassandra/tools/StandaloneScrubber.java index 79ba0bd..fdf6c8d 100644 --- a/src/java/org/apache/cassandra/tools/StandaloneScrubber.java +++ b/src/java/org/apache/cassandra/tools/StandaloneScrubber.java @@ -122,13 +122,16 @@ public class StandaloneScrubber // Remove the sstable (it's been copied by scrub and snapshotted) sstable.markObsolete(null); - sstable.selfRef().release(); } catch (Exception e) { System.err.println(String.format("Error scrubbing %s: %s", sstable, e.getMessage())); e.printStackTrace(System.err); } + finally + { + sstable.selfRef().release(); + } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/96549946/test/data/corrupt-sstables/Keyspace1-Standard3-jb-1-Summary.db ---------------------------------------------------------------------- diff --git a/test/data/corrupt-sstables/Keyspace1-Standard3-jb-1-Summary.db b/test/data/corrupt-sstables/Keyspace1-Standard3-jb-1-Summary.db index 7621f07..6eb7650 100644 Binary files a/test/data/corrupt-sstables/Keyspace1-Standard3-jb-1-Summary.db and b/test/data/corrupt-sstables/Keyspace1-Standard3-jb-1-Summary.db differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/96549946/test/data/corrupt-sstables/Keyspace1-StandardInteger1-ka-2-Summary.db ---------------------------------------------------------------------- diff --git a/test/data/corrupt-sstables/Keyspace1-StandardInteger1-ka-2-Summary.db b/test/data/corrupt-sstables/Keyspace1-StandardInteger1-ka-2-Summary.db index 22cfa6a..190922a 100644 Binary files a/test/data/corrupt-sstables/Keyspace1-StandardInteger1-ka-2-Summary.db and b/test/data/corrupt-sstables/Keyspace1-StandardInteger1-ka-2-Summary.db differ