[
https://issues.apache.org/jira/browse/CASSANDRA-3407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13138748#comment-13138748
]
paul cannon commented on CASSANDRA-3407:
----------------------------------------
So here's the culprit:
bq. Interval(DecoratedKey(145657158669597754039818762792796113368,
6b657973706163654c42534441544150524f445553),
DecoratedKey(130897858884062407407634012854175581156,
6b65797370616365544553544441544150524f445553))
Notice that the min of that Interval (~1.45e38) is greater than the max
(~1.30e38). The IntervalTree logic is wholly incapable of dealing with that, so
we end up in an infinite loop. The only way I can find that this could happen
is from an invalid SSTableReader object. I'll make a patch with some extra
asserts; if you can run with that, Zhong, maybe we can at least see where that
invalid data is coming from.
> Failed upgrade from 0.8.5 to 1.0.0
> ----------------------------------
>
> Key: CASSANDRA-3407
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3407
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.0
> Environment: Linux 2.6.18
> Reporter: Zhong Li
> Assignee: paul cannon
> Priority: Critical
> Fix For: 1.0.2
>
> Attachments: exception1.txt, system.log
>
>
> After installed 1.0.0 and changed config file cassandra.yaml, restart
> cassandra and got exception,
> INFO 22:25:37,727 Opening /srv/opt/cassandra8/data/system/IndexInfo-g-121
> (5428 bytes)
> ERROR 22:25:37,753 Exception encountered during startup_type: 0},
> java.lang.StackOverflowError, validation_class: UTF8Type, index_type: 0},
> at java.math.BigInteger.compareMagnitude(BigInteger.java:2477)
> at java.math.BigInteger.compareTo(BigInteger.java:2463)type: 0},
> at
> org.apache.cassandra.dht.BigIntegerToken.compareTo(BigIntegerToken.java:39)
> at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:83)
> at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:38)
> at java.util.Arrays.mergeSort(Arrays.java:1144)dex_type: 0},
> at java.util.Arrays.sort(Arrays.java:1079)dex_type: 0},
> at java.util.Collections.sort(Collections.java:117)},
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.findMinMedianMax(IntervalNode.java:102)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:43)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> .....
> at
> org.apache.cassandra.utils.IntervalTree.IntervalNode.<init>(IntervalNode.java:51)
> at
> org.apache.cassandra.utils.IntervalTree.IntervalTree.<init>(IntervalTree.java:38)
> at
> org.apache.cassandra.db.DataTracker$View.buildIntervalTree(DataTracker.java:522)
> at
> org.apache.cassandra.db.DataTracker$View.replace(DataTracker.java:547)
> at org.apache.cassandra.db.DataTracker.replace(DataTracker.java:268)
> at
> org.apache.cassandra.db.DataTracker.addSSTables(DataTracker.java:237)
> at
> org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:216)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:315)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:285)
> at org.apache.cassandra.db.Table.initCf(Table.java:372)
> at org.apache.cassandra.db.Table.<init>(Table.java:320)
> at org.apache.cassandra.db.Table.open(Table.java:121)
> at org.apache.cassandra.db.Table.open(Table.java:104)
> at
> org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:215)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:150)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:337)
> at
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106)
> Exception encountered during startup: null
--
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