Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Mar 2010 23:06:30 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Doug Barton <dougb@FreeBSD.org>
Cc:        svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   Re: svn commit: r205806 - stable/8/etc
Message-ID:  <20100328210630.GA2086@stack.nl>
In-Reply-To: <4BAFBBFA.7020701@FreeBSD.org>
References:  <201003282019.o2SKJfPg033857@svn.freebsd.org> <4BAFBBFA.7020701@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

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

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100328210630.GA2086>