[ https://issues.apache.org/jira/browse/CASSANDRA-12979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15803137#comment-15803137 ]
Jon Haddad commented on CASSANDRA-12979: ---------------------------------------- Updated NEWS.txt and CHANGES.txt on all 3 patches. Changed the log error to warn. Not sure about the spacing nit though - there's 1 line above the single line comment, which is consistent with the other comments in the file. Maybe the patch had some weird formatting? > checkAvailableDiskSpace doesn't update expectedWriteSize when reducing thread > scope > ----------------------------------------------------------------------------------- > > Key: CASSANDRA-12979 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12979 > Project: Cassandra > Issue Type: Bug > Reporter: Jon Haddad > Assignee: Jon Haddad > Labels: compaction > Fix For: 2.2.9, 3.0.11, 4.0, 3.x > > Attachments: 2.2.patch, 3.0.patch, trunk-12979.patch > > > If a compaction occurs that looks like it'll take up more space than > remaining disk available, the compaction manager attempts to reduce the scope > of the compaction by calling {{reduceScopeForLimitedSpace()}} repeatedly. > Unfortunately, the while loop passes the {{estimatedWriteSize}} calculated > from the original call to {{hasAvailableDiskSpace}}, so the comparisons that > are done will always be against the size of the original compaction, rather > than the reduced scope one. > Full method below: > {code} > protected void checkAvailableDiskSpace(long estimatedSSTables, long > expectedWriteSize) > { > if(!cfs.isCompactionDiskSpaceCheckEnabled() && compactionType == > OperationType.COMPACTION) > { > logger.info("Compaction space check is disabled"); > return; > } > while (!getDirectories().hasAvailableDiskSpace(estimatedSSTables, > expectedWriteSize)) > { > if (!reduceScopeForLimitedSpace()) > throw new RuntimeException(String.format("Not enough space > for compaction, estimated sstables = %d, expected write size = %d", > estimatedSSTables, expectedWriteSize)); > > } > } > {code} > I'm proposing to recalculate the {{estimatedSSTables}} and > {{expectedWriteSize}} after each iteration of {{reduceScopeForLimitedSpace}}. > -- This message was sent by Atlassian JIRA (v6.3.4#6332)