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

Sijie Guo commented on BOOKKEEPER-281:
--------------------------------------

agreed that a separated jira on how to deal with zookeeper.

@Ivan, the new patch is simple and clear. just one question, why you change to 
count down the latch on all events? is there any consideration?

{code}
-                        if 
(event.getState().equals(Watcher.Event.KeeperState.SyncConnected)) {
-                            connectLatch.countDown();
-                        }
+                        // countdown the latch on all events, even if we 
haven't
+                        // successfully connected.
+                        zkConnectLatch.countDown();
+
{code}

{code}
         zk = new ZooKeeper(conf.getZkServers(), conf.getZkTimeout(), new 
Watcher() {
             @Override
             public void process(WatchedEvent event) {
+                latch.countDown();
                 if (LOG.isDebugEnabled()) {
                     LOG.debug("Process: " + event.getType() + " " + 
event.getPath());
                 }
             }
         });
{code}
                
> BKClient is failing when zkclient connection delays
> ---------------------------------------------------
>
>                 Key: BOOKKEEPER-281
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-281
>             Project: Bookkeeper
>          Issue Type: Bug
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.1.0, 4.2.0
>
>         Attachments: BOOKKEEPER-281.diff, BOOKKEEPER-281.diff, 
> BOOKKEEPER-281.diff
>
>
> I have started the ZK cluster and when tries to create a BookKeeper client 
> from my application, it is throwing following ZooKeeper 
> ConnectionLossException and is exitting.
> 12/06/01 11:44:31 WARN client.ZooKeeperSaslClient: SecurityException: 
> java.lang.SecurityException: Unable to locate a login configuration occurred 
> when trying to find JAAS configuration.
> 12/06/01 11:44:31 INFO client.ZooKeeperSaslClient: Client will not 
> SASL-authenticate because the default JAAS configuration section 'Client' 
> could not be found. If you are not using SASL, you may ignore this. On the 
> other hand, if you expected SASL to work, please fix your JAAS configuration.
> 12/06/01 11:44:31 INFO zookeeper.ClientCnxn: Client session timed out, have 
> not heard from server in 4540ms for sessionid 0x0, closing socket connection 
> and attempting reconnect
> 12/06/01 11:44:32 INFO zookeeper.ClientCnxn: Opening socket connection to 
> server /10.18.40.91:2182
> Exception in thread "main" 
> org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode 
> = ConnectionLoss
>        at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
>        at 
> org.apache.bookkeeper.client.BookieWatcher.readBookiesBlocking(BookieWatcher.java:151)
>        at org.apache.bookkeeper.client.BookKeeper.<init>(BookKeeper.java:139)
>        at BKClient1.main(BKClient1.java:40)
> 12/06/01 11:44:36 WARN client.ZooKeeperSaslClient: SecurityException: 
> java.lang.SecurityException: Unable to locate a login configuration occurred 
> when trying to find JAAS configuration.
> When analyzed more, the root cause is:
> BookKeeper.java:
> --------------------
> In the constructor of BookKeeper, immediately after creating the ZK client , 
> it is going to bookieWatcher.readBookiesBlocking() for available bookies from 
> ZK server before reaching SyncConnected event.
> I think, we would properly use the existing countdown latch and wait till 
> ZooKeeper client connection establishment before continue reading Bookies.

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