[
https://issues.apache.org/jira/browse/ZOOKEEPER-2447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15363473#comment-15363473
]
Michael Han commented on ZOOKEEPER-2447:
----------------------------------------
[~dbenediktson], seems you are not in a 'contributor' role so you can't be
assigned to this issue (I tried to assign this issue to you but your id was not
in the list). One of the committers should have permission to assign role
'Contributor' to your ID and then you can assign this issue to yourself and
after that you can submit patches.
Some context info on Apache JIRA permission workflow:
- For a given JIRA issue, only *reporter*, or *assignee*, or *committer* can
attach file.
- A contributor can only attach files to issues that's assigned and/or
reporting to the contributor.
- A workaround for a contributor to attach files to any issue is to first
change assignee to the contributor, then attach files, then change the assignee
back.
> Zookeeper adds good delay when one of the quorum host is not reachable
> -----------------------------------------------------------------------
>
> Key: ZOOKEEPER-2447
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2447
> Project: ZooKeeper
> Issue Type: Bug
> Affects Versions: 3.4.6, 3.5.0
> Reporter: Vishal Khandelwal
> Assignee: Vishal Khandelwal
> Fix For: 3.5.3, 3.6.0
>
> Attachments: ZOOKEEPER-2447.3.5.patch, withfix.txt, withoutFix.txt
>
>
> StaticHostProvider --> resolveAndShuffle method adds all of the address which
> are valid in the quorum to the list, shuffles them and sends back to client
> connection class. If after shuffling if first node appear to be the one which
> is not reachable, Clientcnx.SendThread.run will keep on connecting to the
> failure till a timeout and the moves to a different node. This adds up random
> delay in zookeeper connection in case a host is down. Rather we could check
> if host is reachable in StaticHostProvider and ignore isReachable is false.
> Same as we do for UnknownHostException Exception.
> This can tested using following test code by providing a valid host which is
> not reachable. for quick test comment Collections.shuffle(tmpList,
> sourceOfRandomness); in StaticHostProvider.resolveAndShuffle
> {code}
> @Test
> public void test() throws Exception {
> EventsWatcher watcher = new EventsWatcher();
> QuorumUtil qu = new QuorumUtil(1);
> qu.startAll();
>
> ZooKeeper zk =
> new ZooKeeper("<hostnamet:2181," + qu.getConnString(), 180 * 1000,
> watcher);
>
> watcher.waitForConnected(CONNECTION_TIMEOUT * 5);
> Assert.assertTrue("connection Established", watcher.isConnected());
> zk.close();
> }
> {code}
> Following fix can be added to StaticHostProvider.resolveAndShuffle
> {code}
> if(taddr.isReachable(4000 // can be some value)) {
> tmpList.add(new InetSocketAddress(taddr,
> address.getPort()));
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)