[ 
https://issues.apache.org/jira/browse/CASSANDRA-6086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuki Morishita updated CASSANDRA-6086:
--------------------------------------

    Attachment: 6086-v2.txt

bq. From the other hand, the leftovers about to remove are already missing 
(i.e. already removed) when exception is thrown.

Is this the case that, for example, you have SSTable 'C' that is produced from 
compacting SSTables 'A' and 'B'('C' has ancestors 'A' and 'B'), and 'A' and 'B' 
are already deleted, but removeUnfinishedCompactionLeftovers reports you have 
unfinished compaction of 'A' and 'B'?

In above case, you definitely don't want to proceed, since the code tries 
remove SSTable 'C' afterwards.
Patch v2 is attached to prevent deleting SSTable if its ancestors are already 
missing after printing warning.

(I'm still looking for the case why the above happened though. We supposed not 
to have entries in compaction_in_progress when those are removed.)


> Node refuses to start with exception in 
> ColumnFamilyStore.removeUnfinishedCompactionLeftovers when find that some to 
> be removed files are already removed
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6086
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6086
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Oleg Anastasyev
>            Assignee: Oleg Anastasyev
>             Fix For: 2.0.2
>
>         Attachments: 6086-v2.txt, removeUnfinishedCompactionLeftovers.txt
>
>
> Node refuses to start with
> {code}
> Caused by: java.lang.IllegalStateException: Unfinished compactions reference 
> missing sstables. This should never happen since compactions are marked 
> finished before we start removing the old sstables.
>       at 
> org.apache.cassandra.db.ColumnFamilyStore.removeUnfinishedCompactionLeftovers(ColumnFamilyStore.java:544)
>       at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:262)
> {code}
> IMO, there is no reason to refuse to start discivering files that must be 
> removed are already removed. It looks like pure bug diagnostic code and mean 
> nothing to operator (nor he can do anything about this).
> Replaced throw of excepion with dump of diagnostic warning and continue 
> startup.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to