You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by db...@apache.org on 2016/08/04 03:26:55 UTC

cassandra git commit: avoid unlikely race condition wrt disk sizing, producing a seemingly bogus exception message

Repository: cassandra
Updated Branches:
  refs/heads/trunk f97e41049 -> f531c67d6


avoid unlikely race condition wrt disk sizing, producing a seemingly bogus exception message


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

Branch: refs/heads/trunk
Commit: f531c67d687a004bcda57582e68f90b1901e992d
Parents: f97e410
Author: Dave Brosius <db...@mebigfatguy.com>
Authored: Wed Aug 3 23:25:46 2016 -0400
Committer: Dave Brosius <db...@mebigfatguy.com>
Committed: Wed Aug 3 23:25:46 2016 -0400

----------------------------------------------------------------------
 .../db/compaction/writers/CompactionAwareWriter.java         | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f531c67d/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java b/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java
index 3557022..205aebe 100644
--- a/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java
+++ b/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java
@@ -208,16 +208,20 @@ public abstract class CompactionAwareWriter extends Transactional.AbstractTransa
             if (directory == null)
                 directory = sstable.descriptor.directory;
             if (!directory.equals(sstable.descriptor.directory))
+            {
                 logger.trace("All sstables not from the same disk - putting results in {}", directory);
+                break;
+            }
         }
         Directories.DataDirectory d = getDirectories().getDataDirectoryForFile(directory);
         if (d != null)
         {
-            if (d.getAvailableSpace() < estimatedWriteSize)
+            long availableSpace = d.getAvailableSpace();
+            if (availableSpace < estimatedWriteSize)
                 throw new RuntimeException(String.format("Not enough space to write %s to %s (%s available)",
                                                          FBUtilities.prettyPrintMemory(estimatedWriteSize),
                                                          d.location,
-                                                         FBUtilities.prettyPrintMemory(d.getAvailableSpace())));
+                                                         FBUtilities.prettyPrintMemory(availableSpace)));
             logger.trace("putting compaction results in {}", directory);
             return d;
         }