-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/51290/
-----------------------------------------------------------
Review request for qpid, Gordon Sim and Kenneth Giusti.
Bugs: QPID-7317
https://issues.apache.org/jira/browse/QPID-7317
Repository: qpid-python
Description
-------
If a process forks while using qpid.messaging, endpoints created by the parent
MUST NOT be used by the child in any way. Previously this could hang the child,
or the parent, or both.
This fix raises an exception for such illegal use.
Related to https://issues.apache.org/jira/browse/QPID-5637 which reset the
Selector
after a fork. Covers two more issues:
1. Close the Selector.waiter, its file descriptors are shared with the parent
which
causes havoc.
2. Replace the Endpoint._lock in all affected objects with BrokenLock. If the
parent is holding locks when it forks, they remain locked forever in the
child.
BrokenLock.acquire() raises an exception.
Diffs
-----
qpid/messaging/driver.py 146b8188ab8bebed2d3af26f6bfa6c3667af91cd
qpid/selector.py 4a15d5666257811168e840f42cbe15dd26055259
Diff: https://reviews.apache.org/r/51290/diff/
Testing
-------
Just the reproducer in https://reviews.apache.org/r/51290/ - if this is
addressing the right issue it will need more testing & review.
Thanks,
Alan Conway