[
https://issues.apache.org/jira/browse/ZOOKEEPER-1789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14069489#comment-14069489
]
Flavio Junqueira commented on ZOOKEEPER-1789:
---------------------------------------------
I think those sleep calls are there so that we are sure that the listener is
listening before proceeding (it's a separate thread). Alex is right that other
tests do the same. I'm not sure how to check if the listener is already blocked
on the accept before proceeding. Even if we use a boolean flag it isn't totally
reliable.
> 3.4.x observer causes NPE on 3.5.0 (trunk) participants
> -------------------------------------------------------
>
> Key: ZOOKEEPER-1789
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1789
> Project: ZooKeeper
> Issue Type: Bug
> Affects Versions: 3.5.0
> Reporter: Raul Gutierrez Segales
> Assignee: Alexander Shraer
> Priority: Critical
> Fix For: 3.5.0
>
> Attachments: ZOOKEEPER-1789.patch, ZOOKEEPER-1789.patch
>
>
> (assigning to Alex because this was introduced by ZOOKEEPER-107, but will
> upload a patch as well.)
> I have a 5 participants cluster running what will be 3.5.0 (i.e.: trunk as of
> today) and an observer running 3.4 (trunk from 3.4 branch). When the observer
> tries to establish a connection to the participants I get:
> {noformat}
> Thread Thread[10.40.78.121:3888,5,main] died java.lang.NullPointerException
> at
> org.apache.zookeeper.server.quorum.QuorumCnxManager.receiveConnection(QuorumCnxManager.java:240)
> at
> org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:552)
> {noformat}
> Looking at QuorumCnxManager.java:240:
> {noformat}
> if (protocolVersion >= 0) { // this is a server id and not a
> protocol version
> sid = protocolVersion;
> electionAddr = self.getVotingView().get(sid).electionAddr;
> } else {
> {noformat}
> and self.getVotingView().get(sid) will be null for Observers. So this block
> should cover that case.
--
This message was sent by Atlassian JIRA
(v6.2#6252)