[ 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.5) 3.3.6 > 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.6 > > 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