You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brent Evans (JIRA)" <ji...@apache.org> on 2016/05/05 09:50:12 UTC

[jira] [Commented] (CASSANDRA-9881) Rows with negative-sized keys can't be skipped by sstablescrub

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

Brent Evans commented on CASSANDRA-9881:
----------------------------------------

I'm also experiencing the same issue when performing a Scrub, which results in the nodetool scrub infinitely looping over the unreadable row.

Is there any plan to further investigate this, or is the only way to resolve this to find and delete the affected SSTable?

Cassandra version: 2.1.11

Logs:

{code}
WARN  [CompactionExecutor:3653] 2016-05-05 07:04:18,180 OutputHandler.java:52 - Row starting at position 809762816 is unreadable; skipping to next
WARN  [CompactionExecutor:3653] 2016-05-05 07:04:18,184 OutputHandler.java:57 - Error reading row (stacktrace follows):
java.io.IOError: java.io.IOException: Unable to read row key from data file
	at org.apache.cassandra.db.compaction.Scrubber.scrub(Scrubber.java:195) ~[apache-cassandra-2.1.11.jar:2.1.11]
	at org.apache.cassandra.db.compaction.CompactionManager.scrubOne(CompactionManager.java:654) [apache-cassandra-2.1.11.jar:2.1.11]
	at org.apache.cassandra.db.compaction.CompactionManager.access$300(CompactionManager.java:94) [apache-cassandra-2.1.11.jar:2.1.11]
	at org.apache.cassandra.db.compaction.CompactionManager$3.execute(CompactionManager.java:321) [apache-cassandra-2.1.11.jar:2.1.11]
	at org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:277) [apache-cassandra-2.1.11.jar:2.1.11]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_31]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_31]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_31]
	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
Caused by: java.io.IOException: Unable to read row key from data file
	... 9 common frames omitted
{code}

Thanks

> Rows with negative-sized keys can't be skipped by sstablescrub
> --------------------------------------------------------------
>
>                 Key: CASSANDRA-9881
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9881
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Brandon Williams
>            Priority: Minor
>             Fix For: 2.1.x
>
>
> It is possible to have corruption in such a way that scrub (on or offline) can't skip the row, so you end up in a loop where this just keeps repeating:
> {noformat}
> WARNING: Row starting at position 2087453 is unreadable; skipping to next 
> Reading row at 2087453 
> row (unreadable key) is -1 bytes
> {noformat}
> The workaround is to just delete the problem sstable since you were going to have to repair anyway, but it would still be nice to salvage the rest of the sstable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)