Bugzilla (bugzilla.redhat.com) will be under maintenance for infrastructure upgrades and will not be available on July 31st between 12:30 AM - 05:30 AM UTC. We appreciate your understanding and patience. You can follow status.redhat.com for details.
Bug 592956 - pidof sometimes reports an error message unexpectedly.
Summary: pidof sometimes reports an error message unexpectedly.
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: SysVinit
Version: 5.4
Hardware: All
OS: Linux
Target Milestone: rc
: ---
Assignee: Petr Lautrbach
QA Contact: qe-baseos-daemons
Depends On:
Blocks: 814132 814136 853081
TreeView+ depends on / blocked
Reported: 2010-05-17 13:19 UTC by Tomas Smetana
Modified: 2018-11-14 20:07 UTC (History)
6 users (show)

Fixed In Version: SysVinit-2.86-16.el5
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 814132 853081 (view as bug list)
Last Closed: 2011-07-21 11:00:49 UTC
Target Upstream Version:

Attachments (Terms of Use)
Proposed patch (434 bytes, patch)
2010-05-17 13:21 UTC, Tomas Smetana
no flags Details | Diff

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:1040 0 normal SHIPPED_LIVE SysVinit bug fix update 2011-07-20 15:43:51 UTC

Description Tomas Smetana 2010-05-17 13:19:44 UTC
Description of problem:
pidof sometimes reports either of the following error messages unexpectedly:

 - "can't get program name from /proc/<pid>/stat"
 - "can't read sid from /proc/<pid>/stat"

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Create a script which freqently spawns and reaps processes, e.g.:
 function dummyproc()
     while true
         /bin/true &
 for i in `seq 1 1 10`
     dummyproc &

2. Start it in the background:
./test.sh &

3. run pidof of some daemon in the loop, and observe.
while true; do pidof syslogd > /dev/null; done
Actual results:
From time to time an error message like this is printed out:
pidof: can't get program name from /proc/6072/stat

Expected results:
No error messages.

Additional info:
There seems to be bug in the killall5 code causing this: killall5 uses fopen to open /proc/<pid>/stat and then freads from it.  It may happen that the file disppears between fopen and fread and this situation is not being addressed anyhow.

Comment 1 Tomas Smetana 2010-05-17 13:21:48 UTC
Created attachment 414544 [details]
Proposed patch

Let's check what we fgets from the file and give up if it's NULL ('\0').

Comment 4 RHEL Program Management 2010-08-09 19:31:47 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated in the
current release, Red Hat is unfortunately unable to address this
request at this time. Red Hat invites you to ask your support
representative to propose this request, if appropriate and relevant,
in the next release of Red Hat Enterprise Linux.

Comment 11 errata-xmlrpc 2011-07-21 11:00:49 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 therefore 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.