svn commit: r205806 - stable/8/etc

Doug Barton dougb at FreeBSD.org
Sun Mar 28 23:10:41 UTC 2010


On 03/28/10 14:06, Jilles Tjoelker wrote:
> On Sun, Mar 28, 2010 at 01:28:42PM -0700, Doug Barton wrote:
>> Probably my fault for not saying something sooner, but there is a
>> problem with the code in head that sometimes causes it to loop
>> repeatedly even though pwait exits successfully. I am trying to track it
>> down, but since it only happens about once every 10 shutdowns it's been
>> difficult.
> 
> There is a difference between the two methods in what is waited for
> exactly. pwait(1) will wait for the process to terminate; if it is
> applied to a zombie it will return immediately (printing the exit status
> if -v was given). On the other hand, kill(1) will continue to return
> success until the process has been waited for by its parent.

The process that I see this with most often is devd, does that fit the
model you're describing? What are the implications of moving on after a
successful pwait even though there is still a zombie process?

> An obvious fix is to trust pwait if it returns successfully, e.g. like
> if pwait $_list 2>/dev/null; then break; else sleep 2; fi

It can't be break, the point of the loop is that wait_for_pids() takes a
list. We may be able to use continue however.


Doug

-- 

	... and that's just a little bit of history repeating.
			-- Propellerheads

	Improve the effectiveness of your Internet presence with
	a domain name makeover!    http://SupersetSolutions.com/



More information about the svn-src-all mailing list