Patrick Hunt updated ZOOKEEPER-696:

    Attachment: ZOOKEEPER-696.patch

this patch removes all npes in the log on my machine

1) close could be called from multiple threads (in case of testing). I changed 
the synchronization quite a bit here so pay close attention
2) notice that clear and other methods calling close on the cnxns list now 
clone the list and call close, close removes the cnxn from the list itself
3) notice that close determines at the start whether the cnxn is closed yet or 
not - based on whether the cnxn is in the cnxns list or not
4) sessiontest - fixed unrelated npe that was showing up
5) leader - this code looked wrong to me. Notice that ss close was after the 
cnxns close, seems to me that this should be first to eliminate the possibility 
that someone added to the cnxns after that list had been cleared (factory run 
method checks if ss is closed or not and exits if it is)

would be good to have more than one pair of eyes on this review

> NPE in the hudson logs, seems nioservercnxn closed twice
> --------------------------------------------------------
>                 Key: ZOOKEEPER-696
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-696
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: server
>            Reporter: Patrick Hunt
>            Assignee: Patrick Hunt
>            Priority: Blocker
>             Fix For: 3.3.0
>         Attachments: ZOOKEEPER-696.patch
> seeing the following on the console for 
> http://hudson.zones.apache.org/hudson/view/ZooKeeper/job/ZooKeeper-trunk/729/
> looks like the cnxn is closed twice? (the second time 'sock' is null). 
> perhaps it's due to client closing and sending session term, then closing 
> socket, server sees the read return -1, so closes cnxn, then sees the session 
> close request (which was queued)?
>     [junit] 2010-03-10 03:15:53,205 - INFO  [main:nioserverc...@1232] - 
> Closed socket connection for client / which had sessionid 
> 0x127461233fc0000
>     [junit] 2010-03-10 03:15:53,206 - WARN  
> [NIOServerCxn.Factory:$fact...@269] - 
> Ignoring unexpected runtime exception
>     [junit] java.lang.NullPointerException
>     [junit]   at 
> org.apache.zookeeper.server.NIOServerCnxn.close(NIOServerCnxn.java:1232)
>     [junit]   at 
> org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:594)
>     [junit]   at 
> org.apache.zookeeper.server.NIOServerCnxn$Factory.run(NIOServerCnxn.java:259)

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