[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-06 Thread Patrick Hunt (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Patrick Hunt updated ZOOKEEPER-763:
---

Attachment: (was: ZOOKEEPER-763_3_3_1.patch)

 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: contrib-bindings
Affects Versions: 3.3.0
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Henry Robinson
 Fix For: 3.3.1, 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt, 
 ZOOKEEPER-763.patch, ZOOKEEPER-763.patch


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Kapil Thangavelu (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kapil Thangavelu updated ZOOKEEPER-763:
---

Attachment: stack-trace-deadlock.txt

A gdb stack trace on the process after it deadlocks.

 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
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Mahadev konar
 Fix For: 3.4.0

 Attachments: deadlock.py, stack-trace-deadlock.txt


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Kapil Thangavelu (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kapil Thangavelu updated ZOOKEEPER-763:
---

Attachment: deadlock_v2.py

new version of the deadlock script that uses an explicit sleep to get a thread 
switch, instead of  looping around the function and hoping it happens.

 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
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Mahadev konar
 Fix For: 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Henry Robinson (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henry Robinson updated ZOOKEEPER-763:
-

 Assignee: Henry Robinson  (was: Mahadev konar)
Fix Version/s: 3.3.1
  Component/s: (was: c client)

 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: contrib-bindings
Affects Versions: 3.3.0
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Henry Robinson
 Fix For: 3.3.1, 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Henry Robinson (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henry Robinson updated ZOOKEEPER-763:
-

Status: Patch Available  (was: Open)

 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: contrib-bindings
Affects Versions: 3.3.0
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Henry Robinson
 Fix For: 3.3.1, 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt, 
 ZOOKEEPER-763.patch


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Henry Robinson (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henry Robinson updated ZOOKEEPER-763:
-

Attachment: ZOOKEEPER-763.patch

Forgot --no-prefix again :/

 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: contrib-bindings
Affects Versions: 3.3.0
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Henry Robinson
 Fix For: 3.3.1, 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt, 
 ZOOKEEPER-763.patch, ZOOKEEPER-763.patch


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Henry Robinson (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henry Robinson updated ZOOKEEPER-763:
-

Status: Patch Available  (was: Open)

 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: contrib-bindings
Affects Versions: 3.3.0
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Henry Robinson
 Fix For: 3.3.1, 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt, 
 ZOOKEEPER-763.patch, ZOOKEEPER-763.patch


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-05 Thread Henry Robinson (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henry Robinson updated ZOOKEEPER-763:
-

Status: Open  (was: Patch Available)

 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: contrib-bindings
Affects Versions: 3.3.0
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Henry Robinson
 Fix For: 3.3.1, 3.4.0

 Attachments: deadlock.py, deadlock_v2.py, stack-trace-deadlock.txt, 
 ZOOKEEPER-763.patch, ZOOKEEPER-763.patch


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-04 Thread Kapil Thangavelu (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kapil Thangavelu updated ZOOKEEPER-763:
---

Attachment: deadlock.py

a simple example that exhibits deadlock behavior on close.

 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
 Attachments: deadlock.py


 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.



[jira] Updated: (ZOOKEEPER-763) Deadlock on close w/ zkpython / c client

2010-05-04 Thread Mahadev konar (JIRA)

 [ 
https://issues.apache.org/jira/browse/ZOOKEEPER-763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mahadev konar updated ZOOKEEPER-763:


 Assignee: Mahadev konar
Fix Version/s: 3.4.0
Affects Version/s: (was: 3.4.0)

 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
 Environment: ubuntu 10.04, zookeeper 3.3.0 and trunk
Reporter: Kapil Thangavelu
Assignee: Mahadev konar
 Fix For: 3.4.0

 Attachments: deadlock.py


 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.