You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Tyler Hobbs (JIRA)" <ji...@apache.org> on 2013/12/10 23:02:09 UTC

[jira] [Updated] (CASSANDRA-6008) Getting 'This should never happen' error at startup due to sstables missing

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

Tyler Hobbs updated CASSANDRA-6008:
-----------------------------------

    Attachment: 6008-trunk-v1.patch

6008-trunk-v1.patch should resolve the issue on trunk.  I'll have a 2.0 patch shortly.

The root of the problem was that LazilyCompactedRow was merging row tombstones incorrectly, essentially just discarding them.  There are a lot of documentation improvements in the patch (as it took me a while to understand everything sufficiently well to make a good fix); the only real code changes are in LazilyCompactedRow and a unit test to reproduce the issue.

We should probably change the title of this ticket to match the actual problem instead of this particular symptom.

> Getting 'This should never happen' error at startup due to sstables missing
> ---------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6008
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6008
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: John Carrino
>            Assignee: Tyler Hobbs
>             Fix For: 2.0.4
>
>         Attachments: 6008-trunk-v1.patch
>
>
> Exception encountered during startup: "Unfinished compactions reference missing sstables. This should never happen since compactions are marked finished before we start removing the old sstables"
> This happens when sstables that have been compacted away are removed, but they still have entries in the system.compactions_in_progress table.
> Normally this should not happen because the entries in system.compactions_in_progress are deleted before the old sstables are deleted.
> However at startup recovery time, old sstables are deleted (NOT BEFORE they are removed from the compactions_in_progress table) and then after that is done it does a truncate using SystemKeyspace.discardCompactionsInProgress
> We ran into a case where the disk filled up and the node died and was bounced and then failed to truncate this table on startup, and then got stuck hitting this exception in ColumnFamilyStore.removeUnfinishedCompactionLeftovers.
> Maybe on startup we can delete from this table incrementally as we clean stuff up in the same way that compactions delete from this table before they delete old sstables.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)