[ https://issues.apache.org/jira/browse/CASSANDRA-3023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13085369#comment-13085369 ]
Brandon Williams commented on CASSANDRA-3023: --------------------------------------------- This will happen in a mixed cluster because nodes prior to CASSANDRA-1777 will not have advertised the information that describe_ring now relies on, causing the NPE when the nodes that do have 1777 try to access it. There's not a lot we can do here. We can basically return half-broken data for nodes that haven't advertised this info yet, but that puts us back to before CASSANDRA-1777, so it's not much of a win. I can't think of a reason why clients would need to call describe_ring while there's an upgrade in process; topology isn't changing. > NPE in describe_ring > -------------------- > > Key: CASSANDRA-3023 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3023 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 0.8.4 > Reporter: Eric Falcao > Assignee: Brandon Williams > > Not sure how much of the following is relevant besides the stack trace, but > here I go: > I have a 2 DC, 2 node per DC cluster. DC1 had it's seed replaced but I hadn't > restarted. I upgraded to 0.8.4 in the following fashion: > -edited seeds > -stopped both DC1 nodes > -upgraded jars > -started both nodes at the same time > The non-seed node came up first and showed the following error. Then when the > seed node came up, the error went away on the non-seed node but started > occurring on the seed node: > ERROR [pool-2-thread-15] 2011-08-12 22:32:27,438 Cassandra.java (line 3668) > Internal error processing describe_ring > java.lang.NullPointerException > at > org.apache.cassandra.service.StorageService.getRangeToRpcaddressMap(StorageService.java:623) > at > org.apache.cassandra.thrift.CassandraServer.describe_ring(CassandraServer.java:731) > at > org.apache.cassandra.thrift.Cassandra$Processor$describe_ring.process(Cassandra.java:3664) > at org.apache.cassandra.thrift.Brisk$Processor.process(Brisk.java:464) > 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:619) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira