[
https://issues.apache.org/jira/browse/CASSANDRA-4463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-4463:
--------------------------------------
Attachment: 4463.txt
Null CFs are not allowed in the row cache. The normal read path checks this as
follows:
{code}
. ColumnFamily data =
getTopLevelColumns(QueryFilter.getIdentityFilter(filter.key, new
QueryPath(columnFamily)),
Integer.MIN_VALUE,
true);
if (sentinelSuccess && data != null)
CacheService.instance.rowCache.replace(key, sentinel, data);
{code}
We need to check this during cache population at startup as well, since the
cache is only saved intermittently -- a row that contained data when the cache
was saved, and subsequently invalidated, will read as null on the following
startup.
> Nodes Don't Restart: Assertion Error on Serializing Cache provider
> ------------------------------------------------------------------
>
> Key: CASSANDRA-4463
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4463
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.1.5
> Environment: Ubuntu 12.04 Precise
> Cassandra 1.1.5
> Oracle Java 6
> Reporter: Arya Goudarzi
> Assignee: Jonathan Ellis
> Priority: Minor
> Fix For: 1.1.11
>
> Attachments: 4463.txt
>
>
> I stopped Cassandra on one of our 1.1.2 nodes and I couldn't start it any
> more. System.log didn't have much useful info but output.log had this:
> java.lang.AssertionError
> at
> org.apache.cassandra.cache.SerializingCacheProvider$RowCacheSerializer.serialize(SerializingCacheProvider.java:43)
> at
> org.apache.cassandra.cache.SerializingCacheProvider$RowCacheSerializer.serialize(SerializingCacheProvider.java:39)
> at
> org.apache.cassandra.cache.SerializingCache.serialize(SerializingCache.java:116)
> at
> org.apache.cassandra.cache.SerializingCache.put(SerializingCache.java:174)
> at
> org.apache.cassandra.cache.InstrumentingCache.put(InstrumentingCache.java:45)
> at
> org.apache.cassandra.db.ColumnFamilyStore.initRowCache(ColumnFamilyStore.java:430)
> at org.apache.cassandra.db.Table.open(Table.java:124)
> at org.apache.cassandra.db.Table.open(Table.java:97)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:204)
> at
> org.apache.cassandra.service.AbstractCassandraDaemon.init(AbstractCassandraDaemon.java:254)
> at
> com.netflix.priam.cassandra.NFThinCassandraDaemon.init(NFThinCassandraDaemon.java:41)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:212)
> Cannot load daemon
> Service exit with a return value of 3
> Deleting the stuff in saved_caches folder fixed the problem.
--
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