[ https://issues.apache.org/jira/browse/ZOOKEEPER-1855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Enrico Olivelli updated ZOOKEEPER-1855: --------------------------------------- Fix Version/s: (was: 3.5.6) > calls to zoo_set_server() fail to flush outstanding request queue. > ------------------------------------------------------------------ > > Key: ZOOKEEPER-1855 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1855 > Project: ZooKeeper > Issue Type: Bug > Components: c client > Reporter: Dutch T. Meyer > Priority: Minor > Fix For: 3.6.0, 3.5.7 > > > If one calls zoo_set_servers to update with a new server list that does not > contain the currently connected server, the client will disconnect. Fair > enough, but any outstanding requests on the set_requests queue aren't > completed, so the next completed request from the new server can fail with an > out-of-order XID error. > The disconnect occurs in update_addrs(), when a reconfig is necessary, though > it's not quite as easy as just calling cleanup_bufs there, because you could > then race the call to dequeue_completion in zookeeper_process and pull NULL > entries for a recently completed request > I don't have a patch for this right now, but I do have a simple repro I can > post when time permits. -- This message was sent by Atlassian Jira (v8.3.2#803003)