[ 
https://issues.apache.org/jira/browse/CASSANDRA-3114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13105768#comment-13105768
 ] 

Jackson Chung edited comment on CASSANDRA-3114 at 9/15/11 11:32 PM:
--------------------------------------------------------------------

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

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

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.


      was (Author: cywjackson):
    "I don't see how making your dc/rack names your external IP address is 
going to solve anything."

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

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: https://issues.apache.org/jira/browse/CASSANDRA-3114
>             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 Cassandra.java (line 3041) 
> Internal error processing get_slice 
> java.lang.NullPointerException 
> at org.apache.cassandra.locator.Ec2Snitch.getDatacenter(Ec2Snitch.java:84) 
> at 
> org.apache.cassandra.locator.DynamicEndpointSnitch.getDatacenter(DynamicEndpointSnitch.java:122)
>  
> at 
> org.apache.cassandra.service.DatacenterReadCallback.assureSufficientLiveNodes(DatacenterReadCallback.java:77)
>  
> at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:516) 
> at org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:480) 
> at 
> org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:109)
>  
> at 
> org.apache.cassandra.thrift.CassandraServer.getSlice(CassandraServer.java:263)
>  
> at 
> org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(CassandraServer.java:345)
>  
> at 
> org.apache.cassandra.thrift.CassandraServer.get_slice(CassandraServer.java:306)
>  
> at 
> org.apache.cassandra.thrift.Cassandra$Processor$get_slice.process(Cassandra.java:3033)
>  
> at 
> org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889) 
> at 
> org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187)
>  
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>  
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>  
> at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to