[
https://issues.apache.org/jira/browse/BOOKKEEPER-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13405041#comment-13405041
]
Ivan Kelly commented on BOOKKEEPER-294:
---------------------------------------
Patch looks good. However, could you move the Watcher out of the if () clause.
i.e.
{code}
Watcher w = new Watcher() {
@Override
public void process(WatchedEvent event) {
// Check for prev znode deletion. Connection expiration is
// not handling, since bookie has logic to shutdown.
if (EventType.NodeDeleted == event.getType()) {
prevNodeLatch.countDown();
}
}
}
if (null != zk.exists(zkBookieRegPath,w)) {
LOG.info("Previous bookie registration znode: "
+ zkBookieRegPath
+ " exists, so waiting zk sessiontimeout: "
+ conf.getZkTimeout() + "ms for znode deletion");
// waiting for the previous bookie reg znode deletion
if (!prevNodeLatch.await(conf.getZkTimeout(),
TimeUnit.MILLISECONDS)) {
throw new KeeperException.NodeExistsException(
zkBookieRegPath);
}
}
{code}
As it is, it makes the flow of the method harder to follow.
> Not able to start the bookkeeper before the ZK session timeout.
> ---------------------------------------------------------------
>
> Key: BOOKKEEPER-294
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-294
> Project: Bookkeeper
> Issue Type: Bug
> Components: bookkeeper-server
> Affects Versions: 4.1.0
> Reporter: Gopinathan A
> Assignee: Rakesh R
> Fix For: 4.2.0, 4.1.1
>
> Attachments: BOOKKEEPER-294.1.patch, BOOKKEEPER-294.2.patch,
> BOOKKEEPER-294.3.patch, BOOKKEEPER-294.4.patch, BOOKKEEPER-294.5.patch,
> BOOKKEEPER-294.6.patch, BOOKKEEPER-294.patch, BOOKKEEPER-294.patch
>
>
> Not able to start the bookkeeper before the ZK session timeout.
> Here i killed the bookie and started again.
> {noformat}
> 2012-06-12 20:00:25,220 - INFO [main:LedgerCache@65] - openFileLimit is 900,
> pageSize is 8192, pageLimit is 456781
> 2012-06-12 20:00:25,238 - ERROR [main:Bookie@453] - ZK exception registering
> ephemeral Znode for Bookie!
> org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode =
> NodeExists for /ledgers/available/10.18.40.216:3181
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:119)
> at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
> at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:778)
> at org.apache.bookkeeper.bookie.Bookie.registerBookie(Bookie.java:450)
> at org.apache.bookkeeper.bookie.Bookie.<init>(Bookie.java:348)
> at org.apache.bookkeeper.proto.BookieServer.<init>(BookieServer.java:64)
> at org.apache.bookkeeper.proto.BookieServer.main(BookieServer.java:249)
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira