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.

Reply via email to