[
https://issues.apache.org/jira/browse/ZOOKEEPER-888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922209#action_12922209
]
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.