You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by mi...@apache.org on 2012/09/05 01:26:07 UTC
svn commit: r1380932 - in /zookeeper/branches/branch-3.4: CHANGES.txt
src/c/src/zookeeper.c
Author: michim
Date: Tue Sep 4 23:26:07 2012
New Revision: 1380932
URL: http://svn.apache.org/viewvc?rev=1380932&view=rev
Log:
ZOOKEEPER-1105 c client zookeeper_close not send CLOSE_OP request to server (lincoln.lee via michim)
Modified:
zookeeper/branches/branch-3.4/CHANGES.txt
zookeeper/branches/branch-3.4/src/c/src/zookeeper.c
Modified: zookeeper/branches/branch-3.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/CHANGES.txt?rev=1380932&r1=1380931&r2=1380932&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.4/CHANGES.txt Tue Sep 4 23:26:07 2012
@@ -99,6 +99,9 @@ BUGFIXES:
ZOOKEEPER-1481 allow the C cli to run exists with a watcher (phunt via michim)
+ ZOOKEEPER-1105 c client zookeeper_close not send CLOSE_OP request to server
+ (lincoln.lee via michim)
+
IMPROVEMENTS:
ZOOKEEPER-1389. it would be nice if start-foreground used exec $JAVA
Modified: zookeeper/branches/branch-3.4/src/c/src/zookeeper.c
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/c/src/zookeeper.c?rev=1380932&r1=1380931&r2=1380932&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/c/src/zookeeper.c (original)
+++ zookeeper/branches/branch-3.4/src/c/src/zookeeper.c Tue Sep 4 23:26:07 2012
@@ -2515,6 +2515,22 @@ int zookeeper_close(zhandle_t *zh)
/* make sure the close request is sent; we set timeout to an arbitrary
* (but reasonable) number of milliseconds since we want the call to block*/
rc=adaptor_send_queue(zh, 3000);
+
+ /* make sure server has read the close request and sent back a response*/
+ struct pollfd fd_s[1];
+ fd_s[0].fd = zh->fd;
+ fd_s[0].events = POLLIN;
+ int ret = poll(fd_s, 1, 1000);
+ if (ret == 0) {
+ LOG_WARN(("Timeout when waitting for server's reply after sending a close request, sessionId=%#llx\n",
+ zh->client_id.client_id));
+ } else if (ret < 0) {
+ LOG_WARN(("System error happens when waitting for server's reply, sessionId=%#llx\n",
+ zh->client_id.client_id));
+ } else {
+ // do nothing
+ }
+
}else{
LOG_INFO(("Freeing zookeeper resources for sessionId=%#llx\n",
zh->client_id.client_id));