You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2010/09/22 08:36:39 UTC
svn commit: r999776 - in /hadoop/zookeeper/trunk: CHANGES.txt
src/java/main/org/apache/zookeeper/ClientCnxn.java
Author: phunt
Date: Wed Sep 22 06:36:39 2010
New Revision: 999776
URL: http://svn.apache.org/viewvc?rev=999776&view=rev
Log:
ZOOKEEPER-846. zookeeper client doesn't shut down cleanly on the close call
Modified:
hadoop/zookeeper/trunk/CHANGES.txt
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java
Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=999776&r1=999775&r2=999776&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Wed Sep 22 06:36:39 2010
@@ -98,6 +98,9 @@ BUGFIXES:
ZOOKEEPER-831. BookKeeper: Throttling improved for reads (breed via fpj)
+ ZOOKEEPER-846. zookeeper client doesn't shut down cleanly on the close call
+ (phunt)
+
IMPROVEMENTS:
ZOOKEEPER-724. Improve junit test integration - log harness information
(phunt via mahadev)
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java?rev=999776&r1=999775&r2=999776&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java Wed Sep 22 06:36:39 2010
@@ -1274,8 +1274,6 @@ public class ClientCnxn {
+ Long.toHexString(getSessionId()));
}
- closing = true;
-
try {
RequestHeader h = new RequestHeader();
h.setType(ZooDefs.OpCode.closeSession);
@@ -1323,9 +1321,14 @@ public class ClientCnxn {
packet.ctx = ctx;
packet.clientPath = clientPath;
packet.serverPath = serverPath;
- if (!zooKeeper.state.isAlive()) {
+ if (!zooKeeper.state.isAlive() || closing) {
conLossPacket(packet);
} else {
+ // If the client is asking to close the session then
+ // mark as closing
+ if (h.getType() == OpCode.closeSession) {
+ closing = true;
+ }
outgoingQueue.add(packet);
}
}