hadoop-zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kapil Thangavelu (JIRA)" <j...@apache.org>
Subject [jira] Created: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client
Date Tue, 04 May 2010 13:10:56 GMT
Deadlock on close w/ zkpython / c client

                 Key: ZOOKEEPER-763
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-763
             Project: Zookeeper
          Issue Type: Bug
          Components: c client, contrib-bindings
    Affects Versions: 3.3.0, 3.4.0
         Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
            Reporter: Kapil Thangavelu

deadlocks occur if we attempt to close a handle while there are any outstanding async requests
(aget, acreate, etc). Normally on close both the io thread terminates and the completion thread
are terminated and joined, however w\ith outstanding async requests, the completion thread
won't be in a joinable state, and we effectively hang when the main thread does the join.

afaics ideal behavior would be on close of a handle, to effectively clear out any remaining
callbacks and let the completion thread terminate.

i've tried adding some bookkeeping to within a python client to guard against closing while
there is an outstanding async completion request, but its an imperfect solution since even
after the python callback is executed there is still a window for deadlock before the completion
thread finishes the callback.

a simple example to reproduce the deadlock is attached.

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

View raw message