You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2016/08/22 15:37:07 UTC
Review Request 51290: QPID-7317: Raise exception for illegal use of
endpoints after fork.
-----------------------------------------------------------
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
Re: Review Request 51290: QPID-7317: Raise exception for illegal use
of endpoints after fork.
Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/51290/#review146512
-----------------------------------------------------------
Ship it!
Ship It!
- Kenneth Giusti
On Aug. 23, 2016, 12:09 p.m., Alan Conway wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/51290/
> -----------------------------------------------------------
>
> (Updated Aug. 23, 2016, 12:09 p.m.)
>
>
> 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
>
>
Re: Review Request 51290: QPID-7317: Raise exception for illegal use
of endpoints after fork.
Posted by Alan Conway <ac...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/51290/
-----------------------------------------------------------
(Updated Aug. 23, 2016, 12:09 p.m.)
Review request for qpid, Gordon Sim and Kenneth Giusti.
Changes
-------
raise Closed if an endpoint is used after it's Selector has been stopped instead of hanging.
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 (updated)
-----
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