NullPointerException stopping and starting Zookeeper servers ------------------------------------------------------------
Key: ZOOKEEPER-251 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-251 Project: Zookeeper Issue Type: Bug Components: server Affects Versions: 3.0.1, 3.0.0 Environment: Tested with JDK 1.5, Solaris, but I suspect it is not relevant in this case. Reporter: Thomas Vinod Johnson See the following thread for the original report: http://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-user/200812.mbox/browser Steps to reproduce: 1) Start a replicated zookeeper service consisting of 3 zookeeper (3.0.1) servers all running on the same host (of course, all using their own ports and log directories) 2) Create one znode in this ensemble (using the zookeeper client console, I issued 'create /node1 node1data'). 3) Stop, then restart a single zookeeper server; moving onto the next one a few seconds later. 4) Go back to 3. After 4-5 iterations, the following should occur, with the failing server exiting: java.lang.NullPointerException at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:447) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.init(FileTxnLog.java:358) at org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.<init>(FileTxnLog.java:333) at org.apache.zookeeper.server.persistence.FileTxnLog.read(FileTxnLog.java:250) at org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:102) at org.apache.zookeeper.server.ZooKeeperServer.loadData(ZooKeeperServer.java:183) at org.apache.zookeeper.server.quorum.Leader.lead(Leader.java:245) at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:421) 2008-12-08 14:14:24,880 - INFO [QuorumPeer:/0:0:0:0:0:0:0:0:2183:[EMAIL PROTECTED] - Shutdown called java.lang.Exception: shutdown Leader! reason: Forcing shutdown at org.apache.zookeeper.server.quorum.Leader.shutdown(Leader.java:336) at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:427) Exception in thread "QuorumPeer:/0:0:0:0:0:0:0:0:2183" java.lang.NullPointerException at org.apache.zookeeper.server.quorum.Leader.shutdown(Leader.java:339) at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:427) The inputStream field is null, apparently because next is being called at line 358 even after next returns false. Having very little knowledge about the implementation, I don't know if the existence of hdr.getZxid() >= zxid is supposed to be an invariant across all invocations of the server; however the following change to FileTxnLog.java seems to make the problem go away. diff FileTxnLog.java /tmp/FileTxnLog.java 358c358,359 < next(); --- > if (!next()) > return; 447c448,450 < inputStream.close(); --- > if (inputStream != null) { > inputStream.close(); > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.