[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13295460#comment-13295460
 ] 

Rakesh R commented on BOOKKEEPER-294:
-------------------------------------

Thanks everyone. If I understand the discussion correctly. I'm trying to 
summarize, now we have the following cases:
# ??New bookie tries to start and fails as the socket is already bound, so 
crashes, taking it's availability znode with it.??
How about moving the new 'NIOServerFactory(conf, this); to the BookieServer 
constructor. NIOServerFactory internally doing the ss.socket().bind(new 
InetSocketAddress(conf.getBookiePort())); and will protect the already running 
bookie by throwing BindException. If I do this modification, I will be able to 
safely delete the znode if exists. How does it sound?
{code}
    public BookieServer(ServerConfiguration conf) 
            throws IOException, KeeperException, InterruptedException, 
BookieException {
        this.conf = conf;

        nioServerFactory = new NIOServerFactory(conf, this);

        this.bookie = newBookie(conf);
        isStatsEnabled = conf.isStatisticsEnabled();
    }
{code}
----
# ??Before finishing the NIO startup, if client gets the available bookie would 
cause the client requests to fail.??
I'm thinking, this is a small gap in milliseconds. Still if everyone feels is a 
problem. Registration of the bookie can be delayed till successful NIOServer 
startup. Because the bkclient will not see the server unless it is registered.
----
# ??file lock concept for protecting its storage directories from others while 
it is running.??
I agree to open another JIRA and work on there.

-Rakesh
                
> 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

        

Reply via email to