You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Patrick Hunt (Updated) (JIRA)" <ji...@apache.org> on 2011/11/17 06:30:52 UTC
[jira] [Updated] (ZOOKEEPER-1110) c interface zookeeper_close close
fd too quickly.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Hunt updated ZOOKEEPER-1110:
------------------------------------
Fix Version/s: (was: 3.3.4)
3.3.5
> c interface zookeeper_close close fd too quickly.
> -------------------------------------------------
>
> Key: ZOOKEEPER-1110
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1110
> Project: ZooKeeper
> Issue Type: Bug
> Components: c client
> Affects Versions: 3.3.3
> Environment: linux platform.
> Reporter: xiliu
> Fix For: 3.3.5
>
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
>
> The correct step about close client is the client send CLOSE_OP to the server, wait for several seconds, the server will process the terminal request and close the fd.
> But the zookeeper_close interface is wrong, because the adaptor_send_queue(zh, 3000) (line 2332), will first wait the timeout then send the request.
> The right order is first send the request then wait the timeout. I change as follow:
> $svn diff src/c/src/zookeeper.c
> Index: src/c/src/zookeeper.c
> ===================================================================
> --- src/c/src/zookeeper.c (revision 1140451)
> +++ src/c/src/zookeeper.c (working copy)
> @@ -2329,7 +2329,8 @@
> /* 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);
> + rc=adaptor_send_queue(zh, 0);
> + sleep(3);
> }else{
> LOG_INFO(("Freeing zookeeper resources for sessionId=%#llx\n",
> zh->client_id.client_id));
>
--
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