[
https://issues.apache.org/jira/browse/CASSANDRA-12397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15530155#comment-15530155
]
Carl Yeksigian commented on CASSANDRA-12397:
--------------------------------------------
The longer term fix is removing support for altering types (CASSANDRA-12443) -
if that ticket does end up in 3.0, we won't need to handle the CL replay
separately as it should no longer be a problem.
> Altering a column's type breaks commitlog replay
> ------------------------------------------------
>
> Key: CASSANDRA-12397
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12397
> Project: Cassandra
> Issue Type: Bug
> Reporter: Carl Yeksigian
> Assignee: Stefania
>
> When switching from a fixed-length column to a variable-length column,
> replaying the commitlog on restart will have the same issue as
> CASSANDRA-11820. Seems like it is related to the schema being flushed and
> used when restarted, but commitlogs having been written in the old format.
> {noformat}
> org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException:
> Unexpected error deserializing mutation; saved to
> /tmp/mutation4816372620457789996dat. This may be caused by replaying a
> mutation against a table with the same name but incompatible schema.
> Exception follows: java.io.IOError: java.io.EOFException: EOF after 259 bytes
> out of 3336
> at
> org.apache.cassandra.db.commitlog.CommitLogReader.readMutation(CommitLogReader.java:409)
> [main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLogReader.readSection(CommitLogReader.java:342)
> [main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLogReader.readCommitLogSegment(CommitLogReader.java:201)
> [main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLogReader.readAllFiles(CommitLogReader.java:84)
> [main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLogReplayer.replayFiles(CommitLogReplayer.java:139)
> [main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLog.recoverFiles(CommitLog.java:177)
> [main/:na]
> at
> org.apache.cassandra.db.commitlog.CommitLog.recoverSegmentsOnDisk(CommitLog.java:158)
> [main/:na]
> at
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:316)
> [main/:na]
> at
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:591)
> [main/:na]
> at
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:720)
> [main/:na]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)