[ https://issues.apache.org/jira/browse/ZOOKEEPER-2253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14744562#comment-14744562 ]
Chris Chen commented on ZOOKEEPER-2253: --------------------------------------- Yes, sorry, I meant to say The conditional check here is for a reply packet to update the last seen zxid. Because we match for a ping packet in another block that check is now superfluous. > C asserts ordering of ping requests, while Java client does not > --------------------------------------------------------------- > > Key: ZOOKEEPER-2253 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2253 > Project: ZooKeeper > Issue Type: Bug > Components: c client > Affects Versions: 3.5.0 > Reporter: Chris Chen > Attachments: ZOOKEEPER-2253.patch, ZOOKEEPER-2253.patch, > ZOOKEEPER-2253.patch, zookeeper-2253-3.4.patch > > > Affects C clients from 3.3 to trunk. > The Java client does not enforce ordering on ping requests. It merely updates > fields when a ping reply is received and schedules a new ping request when > necessary. > The C client actually enqueues the void response in the completion data > structure and pulls it off when it gets a response. > This sounds like an implementation detail (and it is, sort of), but if a > future server were to, say, send unsolicited ping replies to a client to > assert liveness, it would work fine against a Java client but would cause a C > client to fail the assertion in zookeeper_process, "assert(cptr)", line 2912, > zookeeper.c. -- This message was sent by Atlassian JIRA (v6.3.4#6332)