For a while I thought this was the perl client not calling zookeeper_close()
properly, but I can reproduce this using the example c_client code from the
twiki as well.
(http://hadoop.apache.org/zookeeper/docs/r3.3.1/zookeeperProgrammers.html#ZooKeeper+C+client+API)
I thought I'd check here before filing a JIRA; am I missing something obvious?
Anytime a client disconnects from my quorum servers, even when
zookeeper_close() has been called, I get this:
2010-10-29 18:04:44,454 - WARN
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:18121:nioserverc...@633] -
EndOfStreamException: Unable to read additional data from client sessionid
0x12bf93ca6a70041, likely client has closed socket
2010-10-29 18:04:44,454 - INFO [ProcessThread:-1:preprequestproces...@385] -
Processed session termination for sessionid: 0x12bf93ca6a70041
2010-10-29 18:04:44,454 - INFO
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:18121:nioserverc...@1434] - Closed socket
connection for client /fe80:0:0:0:0:0:0:1%1:62472 which had sessionid
0x12bf93ca6a70041
2010-10-29 18:04:44,457 - ERROR [SyncThread:0:nioserverc...@444] - Unexpected
Exception:
java.nio.channels.CancelledKeyException
at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55)
at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59)
at
org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:417)
at
org.apache.zookeeper.server.NIOServerCnxn.sendResponse(NIOServerCnxn.java:1508)
at
org.apache.zookeeper.server.FinalRequestProcessor.processRequest(FinalRequestProcessor.java:367)
at
org.apache.zookeeper.server.SyncRequestProcessor.flush(SyncRequestProcessor.java:161)
at
org.apache.zookeeper.server.SyncRequestProcessor.run(SyncRequestProcessor.java:98)
I looked through list archives and such, most other occurrences of this have to
do with some other error (bad timeouts, etc). In this case I'm closing the
connection properly and the cluster is working just fine.
(3.3.1 on darwin and rhel4, btw)
--
nicholas harteau
[email protected]