[ https://issues.apache.org/jira/browse/CASSANDRA-6089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Panchenko updated CASSANDRA-6089: ----------------------------------------- Description: client_only example fails out of the box with: {code} 13/09/24 11:44:53 INFO gms.Gossiper: Node /127.0.0.1 is now part of the cluster 13/09/24 11:44:53 INFO gms.Gossiper: InetAddress /127.0.0.1 is now UP 13/09/24 11:44:53 ERROR concurrent.DebuggableThreadPoolExecutor: Error in ThreadPoolExecutor java.lang.NullPointerException at org.apache.cassandra.service.MigrationManager.maybeScheduleSchemaPull(MigrationManager.java:113) at org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:95) at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:803) at org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:846) at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:931) at org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:50) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) Exception in thread "GossipStage:1" java.lang.NullPointerException at org.apache.cassandra.service.MigrationManager.maybeScheduleSchemaPull(MigrationManager.java:113) at org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:95) at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:803) at org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:846) at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:931) at org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:50) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) {code} I've tested this both on the 1.2.8 tag and with 1.2 latest. The line in question is {code:java} if (Schema.instance.getVersion().equals(theirVersion) || !shouldPullSchemaFrom(endpoint)) {code} Seems that {{Schema.instance.getVersion()}} returns null in the client_only case. Adding a {{Schema.instance.getVersion() == null}} as another {{||}} in the conditional appears to fix it, but I don't remember the codepaths well enough to confidently say that that's the correct thing to do. was: client_only example fails out of the box with: {code} 13/09/24 11:44:53 INFO gms.Gossiper: Node /127.0.0.1 is now part of the cluster 13/09/24 11:44:53 INFO gms.Gossiper: InetAddress /127.0.0.1 is now UP 13/09/24 11:44:53 ERROR concurrent.DebuggableThreadPoolExecutor: Error in ThreadPoolExecutor java.lang.NullPointerException at org.apache.cassandra.service.MigrationManager.maybeScheduleSchemaPull(MigrationManager.java:113) at org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:95) at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:803) at org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:846) at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:931) at org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:50) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) Exception in thread "GossipStage:1" java.lang.NullPointerException at org.apache.cassandra.service.MigrationManager.maybeScheduleSchemaPull(MigrationManager.java:113) at org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:95) at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:803) at org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:846) at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:931) at org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:50) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) {/code} I've tested this both on the 1.2.8 tag and with 1.2 latest. The line in question is {code:java} if (Schema.instance.getVersion().equals(theirVersion) || !shouldPullSchemaFrom(endpoint)) {/code} Seems that {{Schema.instance.getVersion()}} returns null in the client_only case. Adding a {{Schema.instance.getVersion() == null}} as another {{||}} in the conditional appears to fix it, but I don't remember the codepaths well enough to confidently say that that's the correct thing to do. > client_only example does not work > --------------------------------- > > Key: CASSANDRA-6089 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6089 > Project: Cassandra > Issue Type: Bug > Reporter: Mikhail Panchenko > > client_only example fails out of the box with: > {code} > 13/09/24 11:44:53 INFO gms.Gossiper: Node /127.0.0.1 is now part of the > cluster > 13/09/24 11:44:53 INFO gms.Gossiper: InetAddress /127.0.0.1 is now UP > 13/09/24 11:44:53 ERROR concurrent.DebuggableThreadPoolExecutor: Error in > ThreadPoolExecutor > java.lang.NullPointerException > at > org.apache.cassandra.service.MigrationManager.maybeScheduleSchemaPull(MigrationManager.java:113) > at > org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:95) > at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:803) > at > org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:846) > at > org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:931) > at > org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:50) > at > org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at java.lang.Thread.run(Thread.java:680) > Exception in thread "GossipStage:1" java.lang.NullPointerException > at > org.apache.cassandra.service.MigrationManager.maybeScheduleSchemaPull(MigrationManager.java:113) > at > org.apache.cassandra.service.MigrationManager.onAlive(MigrationManager.java:95) > at org.apache.cassandra.gms.Gossiper.markAlive(Gossiper.java:803) > at > org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:846) > at > org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:931) > at > org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:50) > at > org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) > at java.lang.Thread.run(Thread.java:680) > {code} > I've tested this both on the 1.2.8 tag and with 1.2 latest. > The line in question is > {code:java} > if (Schema.instance.getVersion().equals(theirVersion) || > !shouldPullSchemaFrom(endpoint)) > {code} > Seems that {{Schema.instance.getVersion()}} returns null in the client_only > case. Adding a {{Schema.instance.getVersion() == null}} as another {{||}} in > the conditional appears to fix it, but I don't remember the codepaths well > enough to confidently say that that's the correct thing to do. -- 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