cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jackson Chung (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-3114) After Choosing EC2Snitch you can't migrate off w/o a full cluster restart
Date Thu, 15 Sep 2011 23:34:09 GMT


Jackson Chung commented on CASSANDRA-3114:

"I don't see how making your dc/rack names your external IP address is going to solve anything."

well the NPE was on 
return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.DC).value;

the given endpoint is not the local address; its the address from "other" nodes. For those
"other" nodes, if they are not using the Ec2Snitch, which would have populated the "ApplicationState.DC"
and "ApplicationState.RACK" with the values, getApplicationState(ApplicationState.DC) (and
).getApplicationState(ApplicationState.RACK) for that matter) is going to be return null.
Hence you got a NPE from that line on .value.

Defaulting the AbstractEndpointSnitch's gossiperStarting by populating the ApplicationState.DC,ApplicationState.RACK
wll help then any snitch relying the gossip info to getDC and getRack.

> After Choosing EC2Snitch you can't migrate off w/o a full cluster restart
> -------------------------------------------------------------------------
>                 Key: CASSANDRA-3114
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.7.8, 0.8.4
>            Reporter: Benjamin Coverston
> Once you choose the Ec2Snitch the gossip messages will trigger this exception if you
try to move (for example) to the property file snitch:
> ERROR [pool-2-thread-11] 2011-08-30 16:38:06,935 (line 3041) Internal
error processing get_slice 
> java.lang.NullPointerException 
> at org.apache.cassandra.locator.Ec2Snitch.getDatacenter( 
> at org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(

> at org.apache.cassandra.service.DatacenterReadCallback.assureSufficientLiveNodes(

> at org.apache.cassandra.service.StorageProxy.fetchRows( 
> at 
> at org.apache.cassandra.thrift.CassandraServer.readColumnFamily(

> at org.apache.cassandra.thrift.CassandraServer.getSlice( 
> at org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(

> at org.apache.cassandra.thrift.CassandraServer.get_slice( 
> at org.apache.cassandra.thrift.Cassandra$Processor$get_slice.process(

> at org.apache.cassandra.thrift.Cassandra$Processor.process( 
> at org.apache.cassandra.thrift.CustomTThreadPoolServer$

> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(

> at java.util.concurrent.ThreadPoolExecutor$ 
> at

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message