[
https://issues.apache.org/jira/browse/BOOKKEEPER-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13295355#comment-13295355
]
Sijie Guo commented on BOOKKEEPER-294:
--------------------------------------
{quote}
you would have nothing to protect you. The availability znode existing protects
you at the moment.
{quote}
@Ivan, ur right. After checking the code how bookie server starts, the bookie
server registers itself before running NIOServer. There is a bit problem,
registration means the bookie server is available and ready for accepting
requests, but actually NIOServer is not started. so during the gap, the
requests would fail.
A better sequence to start the bookie is first start bookie, start NIOServer
and register bookie.
If the start sequence is described as above, we could prevent two bookie
servers running at same port, which could achieve the assumption I commented
before. Even we could ensure such assumption, I prefer the wait/sleep proposal
which is a safer way.
+1 for wait/sleep solution. Besides that, I would suggest adjusting the start
sequence to remove the gap between znode available and NIOServer ready.
> 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.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