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

Antonio commented on ZOOKEEPER-1437:
------------------------------------

Hi All,

In a scenario where the zookeeper server gets killed and restarted while a java 
zookeeper client is connected  I get the following in the log: (Please note the 
Error at bottom)

{code:none}
[main-SendThread(localhost:60728)] DEBUG 
org.apache.zookeeper.client.ZooKeeperSaslClient  - 
ClientCnxn:sendSaslPacket:length=0
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:60728] DEBUG 
org.apache.zookeeper.server.ZooKeeperServer  - Responding to client SASL token.
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:60728] DEBUG 
org.apache.zookeeper.server.ZooKeeperServer  - Size of client SASL token: 0
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:60728] DEBUG 
org.apache.zookeeper.server.ZooKeeperServer  - Size of server SASL response: 101
[main-SendThread(localhost:60728)] DEBUG org.apache.zookeeper.ClientCnxn  - 
Reading reply sessionid:0x1376082ca4f0000, packet:: clientPath:null 
serverPath:null finished:false header:: 9,102  replyHeader:: 9,0,0  request::   
response:: 
#7265616c6d3d227a6b2d7361736c2d6d6435222c6e6f6e63653d22717a485932306a56743534552f483668315837734e2b4b56656e4c335772666458716f6468336247222c636861727365743d7574662d382c616c676f726974686d3d6d64352d73657373
2012-05-18 15:14:16,908 [SyncThread:0] DEBUG 
org.apache.zookeeper.server.FinalRequestProcessor  - Processing request:: 
sessionid:0x1376082ca4f0000 type:ping cxid:0xfffffffffffffffe 
zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a
2012-05-18 15:14:16,908 [SyncThread:0] DEBUG 
org.apache.zookeeper.server.FinalRequestProcessor  - 
sessionid:0x1376082ca4f0000 type:ping cxid:0xfffffffffffffffe 
zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a

[main-EventThread] DEBUG org.apache.zookeeper.client.ZooKeeperSaslClient  - 
ServerSaslResponseCallback(): using empty data[] as server response (length=0)
[main-EventThread] DEBUG org.apache.zookeeper.client.ZooKeeperSaslClient  - 
saslToken (server) length: 0
[main-EventThread] DEBUG org.apache.zookeeper.client.ZooKeeperSaslClient  - 
saslClient.evaluateChallenge(len=0)
[main-EventThread] ERROR org.apache.zookeeper.client.ZooKeeperSaslClient  - An 
error: (java.security.PrivilegedActionException: 
javax.security.sasl.SaslException: DIGEST-MD5: Digest-challenge format 
violation: algorithm directive missing) occurred when evaluating Zookeeper 
Quorum Member's  received SASL token. Zookeeper Client will go to AUTH_FAILED 
state.
[main-EventThread] ERROR org.apache.zookeeper.client.ZooKeeperSaslClient  - 
SASL authentication failed using login context 'null'.
{code}

I was wondering why the "empty data[]" is expected since it always drives in my 
case to a SASL authentication failed.


I know this is not the correct set up but at moment only one Zk server is set 
up. Not sure if this is actually causing the issue.

*Just for test* I've applied the last patch provided on this ticket with date 
16/May/12 18:17
and then in ClientCnxn.java:565 I've added a null check for rsp.getToken().. 
and I'm not getting that issue anymore.

{code:none}
Index: src\java\main\org\apache\zookeeper\ClientCnxn.java
===================================================================
--- src\java\main\org\apache\zookeeper\ClientCnxn.java  (revision 95556)
+++ src\java\main\org\apache\zookeeper\ClientCnxn.java  (working copy)
@@ -563,6 +563,7 @@
                       ZooKeeperSaslClient.ServerSaslResponseCallback cb = 
(ZooKeeperSaslClient.ServerSaslResponseCallback) p.cb;
                       SetSASLResponse rsp = (SetSASLResponse) p.response;
                       // TODO : check rc (== 0, etc) as with other packet 
types.
+                      if (null != rsp.getToken()){
                       cb.processResult(rc,null,p.ctx,rsp.getToken(),null);
                       ClientCnxn clientCnxn = (ClientCnxn)p.ctx;
                       if ((clientCnxn == null) || 
(clientCnxn.zooKeeperSaslClient == null) ||
@@ -571,6 +572,7 @@
                           queueEvent(new WatchedEvent(EventType.None,
                                   KeeperState.AuthFailed, null));
                       }
+                      }
                   } else if (p.response instanceof GetDataResponse) {
                       DataCallback cb = (DataCallback) p.cb;
                       GetDataResponse rsp = (GetDataResponse) p.response;

{code}
                
> Client uses session before SASL authentication complete
> -------------------------------------------------------
>
>                 Key: ZOOKEEPER-1437
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1437
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.3
>            Reporter: Thomas Weise
>            Assignee: Eugene Koontz
>             Fix For: 3.4.4, 3.5.0
>
>         Attachments: ZOOKEEPER-1437.patch, ZOOKEEPER-1437.patch, 
> ZOOKEEPER-1437.patch, ZOOKEEPER-1437.patch, ZOOKEEPER-1437.patch, 
> ZOOKEEPER-1437.patch, ZOOKEEPER-1437.patch, ZOOKEEPER-1437.patch, 
> ZOOKEEPER-1437.patch
>
>
> Found issue in the context of hbase region server startup, but can be 
> reproduced w/ zkCli alone.
> getData may occur prior to SaslAuthenticated and fail with NoAuth. This is 
> not expected behavior when the client is configured to use SASL.

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