You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2012/05/04 00:32:48 UTC

[jira] [Commented] (CASSANDRA-3985) Ensure a directory is selected for Compaction

    [ https://issues.apache.org/jira/browse/CASSANDRA-3985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13267889#comment-13267889 ] 

Jonathan Ellis commented on CASSANDRA-3985:
-------------------------------------------

I don't understand this.  This will still return null for user defined compactions under the same conditions it would have before, with no log message, since ensureFreeSpace == !isUserDefined.
                
> 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
>             Fix For: 1.0.9
>
>         Attachments: cassandra-1.0-3985.txt
>
>
> From http://www.mail-archive.com/user@cassandra.apache.org/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