I know what happened here. The node encountering exception during startup
is 1.2 while there is another node of 1.2-beta2.
https://issues.apache.org/jira/browse/CASSANDRA-4416 includes metadata for
system keyspace itself in schema_* tables. Hence, when both nodes were up,
1.2-beta2 node streamed that metadata to 1.2 node. Now when I restarted 1.2
node, the following code will load system keyspace again when only
non-system keyspace should be loaded.
public static Collection<KSMetaData> loadFromTable()
{
List<Row> serializedSchema =
SystemTable.serializedSchema(SystemTable.SCHEMA_KEYSPACES_CF);
List<KSMetaData> keyspaces = new
ArrayList<KSMetaData>(serializedSchema.size());
for (Row row : serializedSchema)
{
if (invalidSchemaRow(row))
continue;
keyspaces.add(KSMetaData.fromSchema(row,
serializedColumnFamilies(row.key)));
}
return keyspaces;
}
In 1.2-beta2, system keyspace will be filtered out.
I think I'm gonna update my 1.2 node.
On Wed, Oct 10, 2012 at 2:18 PM, Manu Zhang <[email protected]> wrote:
> well, that didn't go away after I remove all the caches. What should I do
> now?
>
>
> On Wed, Oct 10, 2012 at 2:15 PM, Manu Zhang <[email protected]>wrote:
>
>> exception encountered during startup: Attempting to load already loaded
>> column family system_traces.sessionsjava.lang.RuntimeException: Attempting
>> to load already loaded column family system_traces.sessions
>>
>> at org.apache.cassandra.config.Schema.load(Schema.java:398)
>> at org.apache.cassandra.config.Schema.load(Schema.java:111)
>> at org.apache.cassandra.config.Schema.load(Schema.java:96)
>> at
>> org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:560)
>> at
>> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:214)
>> at
>> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:386)
>> at
>> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:429)
>>
>>
>> This is thrown while reading saved row caches. What could have caused the
>> problem?
>>
>
>