hector-client/hector

NPE in NodeDiscovery after upgrading from 1.1-3 to 1.1-4

mkolesnikov opened this issue · 5 comments

hector-core 1.1-4
cassandra 1.2.5

  1. Cassandra host is down
2013-06-20 11:59:34,342  INFO Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:150 - Not checking that localhost(127.0.0.1):9160 is a member of the ring since there are no live hosts
2013-06-20 11:59:35,352  WARN Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:217 - Downed localhost(127.0.0.1):9160 host still appears to be down: Unable to open transport to localhost(127.0.0.1):9160 , java.net.ConnectException: Connection refused: connect
2013-06-20 11:59:35,352  INFO Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:163 - Downed Host retry status false with host: localhost(127.0.0.1):9160
2013-06-20 11:59:45,353  INFO Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:150 - Not checking that localhost(127.0.0.1):9160 is a member of the ring since there are no live hosts
2013-06-20 11:59:46,353  WARN Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:217 - Downed localhost(127.0.0.1):9160 host still appears to be down: Unable to open transport to localhost(127.0.0.1):9160 , java.net.ConnectException: Connection refused: connect
2013-06-20 11:59:46,353  INFO Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:163 - Downed Host retry status false with host: localhost(127.0.0.1):9160
2013-06-20 11:59:56,355  INFO Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:150 - Not checking that localhost(127.0.0.1):9160 is a member of the ring since there are no live hosts
2013-06-20 11:59:57,366  WARN Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:217 - Downed localhost(127.0.0.1):9160 host still appears to be down: Unable to open transport to localhost(127.0.0.1):9160 , java.net.ConnectException: Connection refused: connect
2013-06-20 11:59:57,366  INFO Hector.me.prettyprint.cassandra.connection.CassandraHostRetryService-1 [username=] me.prettyprint.cassandra.connection.CassandraHostRetryService:163 - Downed Host retry status false with host: localhost(127.0.0.1):9160
2013-06-20 11:59:58,816 ERROR Hector.me.prettyprint.cassandra.connection.NodeAutoDiscoverService-1 [username=] me.prettyprint.cassandra.connection.NodeDiscovery:105 - Discovery Service failed attempt to connect CassandraHost
java.lang.NullPointerException
    at me.prettyprint.cassandra.connection.NodeDiscovery.discoverNodes(NodeDiscovery.java:79)
    at me.prettyprint.cassandra.connection.NodeDiscovery.doAddNodes(NodeDiscovery.java:52)
    at me.prettyprint.cassandra.connection.NodeAutoDiscoverService.doAddNodes(NodeAutoDiscoverService.java:45)
    at me.prettyprint.cassandra.connection.NodeAutoDiscoverService$QueryRing.run(NodeAutoDiscoverService.java:51)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
  1. Cassandra host is running but NPE still appears
2013-06-20 12:27:10,785 ERROR Hector.me.prettyprint.cassandra.connection.NodeAutoDiscoverService-1 [username=] me.prettyprint.cassandra.connection.NodeDiscovery:105 - Discovery Service failed attempt to connect CassandraHost
java.lang.NullPointerException
    at me.prettyprint.cassandra.connection.NodeDiscovery.discoverNodes(NodeDiscovery.java:79)
    at me.prettyprint.cassandra.connection.NodeDiscovery.doAddNodes(NodeDiscovery.java:52)
    at me.prettyprint.cassandra.connection.NodeAutoDiscoverService.doAddNodes(NodeAutoDiscoverService.java:45)
    at me.prettyprint.cassandra.connection.NodeAutoDiscoverService$QueryRing.run(NodeAutoDiscoverService.java:51)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

I believe it will be fixed by 2adef79

If that was fixed can we have 1.1-5 released? I'm hitting the same problem.

As workaround add the following to log4j configuration to disable logging in NodeDiscovery, anyway these log messages are useless

log4j.category.me.prettyprint.cassandra.connection.NodeDiscovery=OFF

I'm hitting the same problem. Is there any dates/plan for 1.1-5 release?

Hi guys,
Is this NPE is supposed to break some functionality or generally it is not an issue?
From the fix code I can say that it`s the second case, but if you can, please answer.