zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robin <rchzz...@163.com>
Subject Re:ZooKeeper client is getting "java.io.IOException: Nothing in the queue, but got "
Date Thu, 27 Nov 2014 12:03:49 GMT
Hi Rakesh,

By the following call flow:
  SendThread#run()
    -> ZooKeeperSaslClient#initialize()
      -> ZooKeeperSaslClient#sendSaslPacket()
        -> ClientCnxn#sendPacket()
          -> SendThread#sendPacket()
            -> ClientCnxnSocketNIO#sendPacket()
It seems that the Sasl Packet has not been put into the pendingQueue after it is sent to the
ZooKeeper Server. So when the SASL response comes, it will not find the corresponding Packet
in the pendingQueue.

- Robin


At 2014-11-26 23:23:04, "Rakesh R" <rakeshr@huawei.com> wrote:
>Hi,
>
>Following exception is coming always for the client session 0xf49d7f31e4c0000 in zookeeper
client logs.
>Client & server is using kerberoes based sasl authentication mechanism.
>
>I'm using 3.4.6 release.
>
>2014-11-25 22:06:19,114 INFO  [Thread-1-SendThread(vm-216:24002)] Client will use GSSAPI
as SASL mechanism. org.apache.zookeeper.client.ZooKeeperSaslClient$1.run(ZooKeeperSaslClient.java:285)
>2014-11-25 22:06:19,114 INFO  [Thread-1-SendThread(vm-216:24002)] Opening socket connection
to server vm-01/**.**.**.**:24002. Will attempt to SASL-authenticate using Login Context section
'Client' org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:1000)
>2014-11-25 22:06:19,115 INFO  [Thread-1-SendThread(vm-216:24002)] Socket connection established
to vm-216/**.**.**.**:24002, initiating session org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:855)
>2014-11-25 22:06:19,116 INFO  [Thread-1-SendThread(vm-216:24002)] Session establishment
complete on server vm-216/**.**.**.**:24002, sessionid = 0xf49d7f31e4c0000, negotiated timeout
= 90000 org.apache.zookeeper.ClientCnxn$SendThread.onConnected(ClientCnxn.java:1260)
>2014-11-25 22:06:19,118 WARN  [Thread-1-SendThread(vm-216:24002)] Session 0xf49d7f31e4c0000
for server vm-216/**.**.**.**:24002, unexpected error, closing socket connection and attempting
reconnect org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1127)
>java.io.IOException: Nothing in the queue, but got 425467
>                at org.apache.zookeeper.ClientCnxn$SendThread.readResponse(ClientCnxn.java:788)
>                at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:94)
>                at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
>                at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1106)
>
>
>This exception has occured in the following logic.
>
>CilentCnxn#readResponse()
>
>            synchronized (pendingQueue) {
>                if (pendingQueue.size() == 0) {
>                    throw new IOException("Nothing in the queue, but got "
>                            + replyHdr.getXid());
>                }
>                packet = pendingQueue.remove();
>            }
>
>
>I failed to find the reason why 'pendingQueue' becomes empty. Only possibility I could
see is the following condition fails and missed to add it to the "pendingQueue"
>
>ClientCnxnSocketNIO.java
>
>                    sock.write(p.bb);
>                    if (!p.bb.hasRemaining()) {
>                        .....
>                        .....
>                        .....
>                        pendingQueue.add(p);
>                    }
>
>Does anyone phase similar issue and would appreciate any help. Thanks!
>
>Thanks & Regards,
>Rakesh
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message