Red Hat Bugzilla – Bug 191463
Bash appears to be mishandling sub-processes that use recycled PIDs
Last modified: 2007-11-30 17:06:55 EST
+++ This bug was initially created as a clone of Bug #145124 +++
Description of problem:
Customer runs a BASH script that sleeps and executes tests in a loop.
Occasionally, sleep terminates prematurely, which causes errors.
I've found the interesting fact from strace log collected by my
reproduction. Whenever the problem happened, the pid which had been
used by the background job process right before was assigned to the
process. For instance, pid 29255 had been assigned to "test_sub.sh" in
test case at the first, nextly, it was assigned to "sleep". The sleep
process was dealed as background job. As the result, this problem
happened. In grep issue, this fact is applicable.
29255 21:28:53.966341 execve("/mnt/test/60427/testing/test_sub.sh",
["/mnt/test/60427/testing/test_sub"...], [/* 31 vars */] <unfinished ...>
229255 22:31:41.371266 execve("/bin/sleep", ["sleep", "10"], [/* 31
vars */] <unfinished ...>
Version-Release number of selected component (if applicable):
Customer has supplied scripts that reproduce the problem, they are
attached to issue 61189.
Steps to Reproduce:
1. Run test scripts
Every now and then, sleep returns prematurely.
Sleep should not return prematurely.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.