[ 
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)

Reply via email to