[
https://issues.apache.org/jira/browse/CASSANDRA-3985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13224484#comment-13224484
]
Pavel Yaskevich commented on CASSANDRA-3985:
--------------------------------------------
Question - what is the reason why we only return "true" from "ensureFreeSpace"
if action is not user defined?
Few styling issues:
{code}
public synchronized static String getDataFileLocationForTable(String table,
long expectedCompactedFileSize,
boolean
ensureFreeSpace )
{code}
should be changed to
{code}
public synchronized static String getDataFileLocationForTable(String table,
long
expectedCompactedFileSize,
boolean
ensureFreeSpace)
{code}
or all arguments written on the same line.
Also we don't use spaces to delimit operands e.g.
{code}
for ( int i = 0 ; i < dataDirectoryForTable.length ; i++ )
{code}
I can see those styling problems inside of getDataFileLocationForTable(...)
method.
> Ensure a directory is selected for Compaction
> ---------------------------------------------
>
> Key: CASSANDRA-3985
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3985
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.7
> Reporter: Aaron Morton
> Assignee: Aaron Morton
> Priority: Minor
> Attachments: cassandra-1.0-3985.txt
>
>
> From http://www.mail-archive.com/[email protected]/msg20757.html
> CompactionTask.execute() checks if there is a valid compactionFileLocation
> only if partialCompactionsAcceptable() . upgradesstables results in a
> CompactionTask with userdefined set, so the valid location check is not
> performed.
> The result is a NPE, partial stack
> {code:java}
> $ nodetool -h localhost upgradesstables
> Error occured while upgrading the sstables for keyspace MyKeySpace
> java.util.concurrent.ExecutionException: java.lang.NullPointerException
> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
> at java.util.concurrent.FutureTask.get(FutureTask.java:83)
> at
> org.apache.cassandra.db.compaction.CompactionManager.performAllSSTableOperation(CompactionManager.java:203)
> at
> org.apache.cassandra.db.compaction.CompactionManager.performSSTableRewrite(CompactionManager.java:219)
> at
> org.apache.cassandra.db.ColumnFamilyStore.sstablesRewrite(ColumnFamilyStore.java:995)
> at
> org.apache.cassandra.service.StorageService.upgradeSSTables(StorageService.java:1648)
> <snip>
> Caused by: java.lang.NullPointerException
> at java.io.File.<init>(File.java:222)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getTempSSTablePath(ColumnFamilyStore.java:641)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getTempSSTablePath(ColumnFamilyStore.java:652)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createCompactionWriter(ColumnFamilyStore.java:1888)
> at
> org.apache.cassandra.db.compaction.CompactionTask.execute(CompactionTask.java:151)
> at
> org.apache.cassandra.db.compaction.CompactionManager$4.perform(CompactionManager.java:229)
> at
> org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:182)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> {code}
> (night time here, will fix tomorrow, anyone else feel free to fix it.)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira