[
https://issues.apache.org/jira/browse/CASSANDRA-4707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461862#comment-13461862
]
Jonathan Ellis commented on CASSANDRA-4707:
-------------------------------------------
I don't see how this ties into schema changes. Here's CFSerializer.deserialize:
{code}
public ColumnFamily deserialize(DataInput dis, IColumnSerializer.Flag flag,
ISortedColumns.Factory factory) throws IOException
{
if (!dis.readBoolean())
return null;
// create a ColumnFamily based on the cf id
int cfId = dis.readInt();
if (Schema.instance.getCF(cfId) == null)
throw new UnknownColumnFamilyException("Couldn't find cfId=" +
cfId, cfId);
ColumnFamily cf = ColumnFamily.create(cfId, factory);
deserializeFromSSTableNoColumns(cf, dis);
deserializeColumns(dis, cf, flag);
return cf;
}
{code}
So:
# serialization relies on the cfId, not cfname, so creating a new cf with the
old name should have no effect (the new cf will get a different id)
# if the cf is dropped, it won't be in the Schema map anymore and
UnknownColumnFamilyException should be thrown (which HHOM handles)
If you can give steps to reproduce that would help a lot.
> EOFException during HH delivery
> -------------------------------
>
> Key: CASSANDRA-4707
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4707
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.1.5
> Environment: windows
> Reporter: Radim Kolar
>
> i have got following error during HH every replay. I did nodetool scrub on
> system.hintedhandoff and sstable is not corrupted, it must have invalid data
> inside.
> INFO [HintedHandoff:10] 2012-09-23 20:26:21,988 HintedHandOffManager.java
> (line 294) Started hinted handoff for token:
> 138224439286689469893643387845607487221 with IP: /10.0.0.9
> ERROR [HintedHandoff:10] 2012-09-23 20:26:21,988 AbstractCassandraDaemon.java
> (line 135) Exception in thread Thread[HintedHandoff:10,1,main]
> java.io.IOError: java.io.EOFException
> at
> org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:259)
> at
> org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:275)
> at
> org.apache.cassandra.io.util.ColumnIterator.next(ColumnSortedMap.java:232)
> at edu.stanford.ppl.concurrent.SnapTreeMap.<init>(SnapTreeMap.java:453)
> at
> org.apache.cassandra.db.AtomicSortedColumns$Holder.<init>(AtomicSortedColumns.java:311)
> at
> org.apache.cassandra.db.AtomicSortedColumns.<init>(AtomicSortedColumns.java:77)
> at
> org.apache.cassandra.db.AtomicSortedColumns.<init>(AtomicSortedColumns.java:48)
> at
> org.apache.cassandra.db.AtomicSortedColumns$1.fromSorted(AtomicSortedColumns.java:61)
> at
> org.apache.cassandra.db.SuperColumnSerializer.deserialize(SuperColumn.java:399)
> at
> org.apache.cassandra.db.ColumnFamilySerializer.deserializeColumns(ColumnFamilySerializer.java:144)
> at
> org.apache.cassandra.db.ColumnFamilySerializer.deserializeColumns(ColumnFamilySerializer.java:136)
> at
> org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:129)
> at
> org.apache.cassandra.db.RowMutation$RowMutationSerializer.deserialize(RowMutation.java:439)
> at
> org.apache.cassandra.db.RowMutation$RowMutationSerializer.deserialize(RowMutation.java:447)
> at
> org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpointInternal(HintedHandOffManager.java:353)
> at
> org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:256)
> at
> org.apache.cassandra.db.HintedHandOffManager.access$300(HintedHandOffManager.java:84)
> at
> org.apache.cassandra.db.HintedHandOffManager$3.runMayThrow(HintedHandOffManager.java:436)
> at
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: java.io.EOFException
> at java.io.DataInputStream.readFully(DataInputStream.java:197)
> at java.io.DataInputStream.readFully(DataInputStream.java:169)
> at
> org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:401)
> at
> org.apache.cassandra.utils.ByteBufferUtil.readWithShortLength(ByteBufferUtil.java:380)
> at
> org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:88)
> at
> org.apache.cassandra.io.util.ColumnIterator.deserializeNext(ColumnSortedMap.java:255)
> ... 21 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira