Henry Robinson commented on ZOOKEEPER-888:

The patch as it stands relies on ZOOKEEPER-853 (which it fixes) which is not in 
3.3 as it is a small API change - it changes is_unrecoverable to return Python 
True or False, rather than ZINVALIDSTATE. 

So I'm not certain about what to do here - we try not to change APIs between 
minor versions. However, this is a very minor change, and this patch fixes a 
significant bug. I'm inclined to commit both 853 and this patch to 3.3 as well 
as trunk, and put a note in the release notes. 

Any objections?

> c-client / zkpython: Double free corruption on node watcher
> -----------------------------------------------------------
>                 Key: ZOOKEEPER-888
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-888
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: c client, contrib-bindings
>    Affects Versions: 3.3.1
>            Reporter: Lukas
>            Assignee: Lukas
>            Priority: Critical
>             Fix For: 3.3.2, 3.4.0
>         Attachments: resume-segfault.py, ZOOKEEPER-888.patch
> the c-client / zkpython wrapper invokes already freed watcher callback
> steps to reproduce:
>   0. start a zookeper server on your machine
>   1. run the attached python script
>   2. suspend the zookeeper server process (e.g. using `pkill -STOP -f 
> org.apache.zookeeper.server.quorum.QuorumPeerMain` )
>   3. wait until the connection and the node observer fired with a session 
> event
>   4. resume the zookeeper server process  (e.g. using `pkill -CONT -f 
> org.apache.zookeeper.server.quorum.QuorumPeerMain` )
> -> the client tries to dispatch the node observer function again, but it was 
> already freed -> double free corruption

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to