Hide Forgot
Created attachment 484319 [details] test application Description of problem: libquestfs can call waitpid(0,..) causing it to wait on all child processes (including processes started by the application). Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. exec a process 2. start a guestfs session 3. call kill_subprocesses() 4. call 'del g_obj' Actual results: my test application blocks in a waitpid(0,..) call Expected results: it should not cause my application to block Additional info: I'll attach a test application and patch.
Created attachment 484320 [details] tentative fix for the problem The patch has not been tested, but looks like the solution to the problem.
The patch is upstream: http://git.annexia.org/?p=libguestfs.git;a=commitdiff;h=6f7c1a9f9d76bdf9f112e12e1508531fb41abfb2 but has not been properly tested.
Angus, please test this and also provide some sort of easy(-ish) test that QA can perform to verify that it is fixed in RHEL 6.2. A small snippet of C code which fails before and succeeds after would be ideal.
(In reply to comment #4) > Angus, please test this and also provide some sort of easy(-ish) > test that QA can perform to verify that it is fixed in RHEL 6.2. Already attached is a python test case, super easy to run. just edit and replace my iso with what ever iso you have then if it locks up - FAIL, if it exits nicely the PASS. > A small snippet of C code which fails before and succeeds after > would be ideal. I have tested and it seems I missed a "if (pid > 0)". I will attach an extra patch that makes my test case pass.
Created attachment 484445 [details] second patch (both needed) to fix bug.
For triaging purposes. Both patches are upstream since mid-March: 6f7c1a9f9d76bdf9f112e12e1508531fb41abfb2 d1f1f74e5f45fa5b94ebb096fa65fa33ecc23d09
Both patches are included in: https://brewweb.devel.redhat.com/taskinfo?taskID=3544452
Reproduced on libguestfs-1.7.17-19 running the forker test. $ python forker.py qpidd(14137) is running 2011-08-29 11:16:28 notice SASL disabled: No Authentication Performed 2011-08-29 11:16:28 notice Listening on TCP port 49000 2011-08-29 11:16:28 notice Broker running The program hangs here. Verified on libguestfs-1.7.17-26 that the test could exit without hang. $ python forker.py qpidd(14023) is running 2011-08-29 11:06:04 notice SASL disabled: No Authentication Performed 2011-08-29 11:06:04 notice Listening on TCP port 49000 2011-08-29 11:06:04 notice Broker running 2011-08-29 11:06:08 notice Shut down qpidd(14023) exited with 0
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1512.html