Bug 832250
Summary: | beaker-provision has a race between creating and reaping child processes | ||
---|---|---|---|
Product: | [Retired] Beaker | Reporter: | Dan Callaghan <dcallagh> |
Component: | lab controller | Assignee: | Dan Callaghan <dcallagh> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 0.9 | CC: | bpeck, dcallagh, rmancy, stl |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2012-06-26 06:40:55 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Dan Callaghan
2012-06-15 01:41:30 UTC
I have a test which reliably reproduces both of those exceptions (you get one or the other at random). I think the best fix is to move the actual work out of the SIGCHLD handler and into a separate greenlet that is scheduled as normal. Then it does not race with or interfere with anything else. And if it does raise for some reason, it won't screw up the whole gevent hub. In retrospect, I should have done it that way originally. http://gerrit.beaker-project.org/1138 Ultimately (when gevent 1.0 is released) we should get away from installing our own SIGCHLD handler at all, and use gevent's child handling which is properly tied in to the libev event loop etc. Beaker 0.9.0 has been released. |