Bug 145124 (IT#61189_IT#60427) - Bash appears to be mishandling sub-processes that use recycled PIDs
Summary: Bash appears to be mishandling sub-processes that use recycled PIDs
Alias: IT#61189_IT#60427
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: bash
Version: 3.0
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Tim Waugh
QA Contact: Ben Levenson
Depends On:
Blocks: 132991 191463
TreeView+ depends on / blocked
Reported: 2005-01-14 16:17 UTC by Steve Conklin
Modified: 2007-12-11 14:44 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2005-05-19 12:53:20 UTC
Target Upstream Version:

Attachments (Terms of Use)
testcase logs (6.52 KB, application/x-gzip)
2005-01-19 03:36 UTC, Keiichi Mori
no flags Details

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2005:437 0 normal SHIPPED_LIVE Updated bash package 2005-05-19 04:00:00 UTC

Description Steve Conklin 2005-01-14 16:17:00 UTC
Description of problem:

Customer runs a BASH script that sleeps and executes tests in a loop.
Occasionally, sleep terminates prematurely, which causes errors.

From IT#60427:
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):

How reproducible:
Customer has supplied scripts that reproduce the problem, they are
attached to issue 61189.

Steps to Reproduce:
1. Run test scripts
Actual results:
Every now and then, sleep returns prematurely.

Expected results:
Sleep should not return prematurely.

Additional info:

Comment 1 Steve Conklin 2005-01-14 16:19:18 UTC
This has been reproduced on U1 and U2, I have requested that it be
reproduced on U4.

Comment 2 Steve Conklin 2005-01-17 15:10:33 UTC
This is reported to have been reproduced on U4. Based on the way Bash performs
fork/exec, I think that the re-use of PIDs must be happening outside BASH.

Comment 5 Keiichi Mori 2005-01-18 07:00:57 UTC
If you execute many testcase at the same time, (of course, please change the log
file name in each testcase.), this problem happens shorter time, because pids
are re-used shorter term. In case of executing 5 testcases at the same time,
this problem has reproduced about one hour.

Comment 6 Tim Waugh 2005-01-18 11:39:07 UTC
From comment #2 it seems that this isn't a bash problem after all?

I'm not quite sure what this is about.  Could someone please explain it in more
detail?  What signal is delivered?  What does strace say at the time? (The
strace fragment in the original description only shows execve and no signals.)

Comment 14 Tim Waugh 2005-01-20 12:37:32 UTC
I understand now.  Thanks for the detailed strace.  I am now analysing it.

Comment 15 Tim Waugh 2005-01-25 15:50:48 UTC
This also seems to happen with bash-3.0.

Comment 16 Tim Waugh 2005-01-27 15:04:23 UTC
Reported upstream with simplified test case.

Comment 17 Tim Waugh 2005-01-28 13:16:17 UTC
Please try this package:


Comment 25 Dennis Gregorovic 2005-05-19 12:53:20 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.