You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Henry Robinson (JIRA)" <ji...@apache.org> on 2010/10/18 20:48:24 UTC
[jira] Commented: (ZOOKEEPER-888) c-client / zkpython: Double free
corruption on node watcher
[ 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.