[
https://issues.apache.org/jira/browse/CASSANDRA-1904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-1904:
--------------------------------------
Fix Version/s: (was: 0.7.0)
0.7.1
Assignee: Gary Dusbabek
> Crash during startup: SSTable doesn't handle corrupt (empty) tmp files
> ----------------------------------------------------------------------
>
> Key: CASSANDRA-1904
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1904
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 0.7.0 rc 2
> Reporter: Timo Nentwig
> Assignee: Gary Dusbabek
> Fix For: 0.7.1
>
>
> Applies to 0.7rc3 as well, but not yet selectable in Jira.
> cassandra stumbles upons empty Data files and crashes during startup rather
> than ignoring these files:
> java.lang.ArithmeticException: / by zero
> at
> org.apache.cassandra.io.sstable.SSTable.estimateRowsFromIndex(SSTable.java:233)
> at
> org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:284)
> at
> org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:200)
> at
> org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:225)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:448)
> at
> org.apache.cassandra.db.ColumnFamilyStore.addIndex(ColumnFamilyStore.java:305)
> at
> org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:246)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:448)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:436)
> at org.apache.cassandra.db.Table.initCf(Table.java:360)
> at org.apache.cassandra.db.Table.<init>(Table.java:290)
> at org.apache.cassandra.db.Table.open(Table.java:107)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:138)
> at
> org.apache.cassandra.thrift.CassandraDaemon.setup(CassandraDaemon.java:55)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:216)
> at
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:134)
> Exception encountered during startup.
> java.lang.ArithmeticException: / by zero
> at
> org.apache.cassandra.io.sstable.SSTable.estimateRowsFromIndex(SSTable.java:233)
> at
> org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:284)
> at
> org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:200)
> at
> org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:225)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:448)
> at
> org.apache.cassandra.db.ColumnFamilyStore.addIndex(ColumnFamilyStore.java:305)
> at
> org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:246)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:448)
> at
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:436)
> at org.apache.cassandra.db.Table.initCf(Table.java:360)
> at org.apache.cassandra.db.Table.<init>(Table.java:290)
> at org.apache.cassandra.db.Table.open(Table.java:107)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:138)
> at
> org.apache.cassandra.thrift.CassandraDaemon.setup(CassandraDaemon.java:55)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:216)
> at
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:134)
> The empty Data/Index tmp files were in my case created and left over when I
> attempted to create a secondary index at runtime which crashed the JVM due to
> OOM.
> SSTable handles IOExceptions so it should be an easy fix: in
> SSTable.estimateRowsFromIndex() just check for ifile.length()
> ==ifile.getFilePointer()==keys==0 and throw an IOException.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.