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;
}