Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2005 11:10:04 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        =?iso-8859-1?Q?Se=E1n_C=2E?= Farley <sean-freebsd@farley.org>
Cc:        hackers@freebsd.org, =?iso-8859-1?Q?Herv=E9?= Kergourlay <herve.kergourlay@atempo.com>, David Xu <davidxu@freebsd.org>
Subject:   Re: Porting on FreeBSD 53
Message-ID:  <20050523014004.GS34798@wantadilla.lemis.com>
In-Reply-To: <20050513123403.J11641@thor.farley.org>
References:  <428307A9.10901@atempo.com> <20050512134151.O2556@thor.farley.org> <20050512163409.O4283@thor.farley.org> <4284CFB5.7040805@atempo.com> <20050513123403.J11641@thor.farley.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--FiqEyLLt06qkB6ow
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

[severely trimmed]

On Friday, 13 May 2005 at 12:45:12 -0500, Sen C. Farley wrote:
> On Fri, 13 May 2005, Herv=E9 Kergourlay wrote:
>> Se=E1n C. Farley a =E9crit :
>>> On Thu, 12 May 2005, Se=E1n C. Farley wrote:
>>>> On Thu, 12 May 2005, Herv=E9 Kergourlay wrote:
>>>>> 4) wait() API
>>>>>
>>>>> 2 problems, the first is a ECHILD error on a wait call after a fork
>>>>> fork The code is generic for most of unix system. Is there any
>>>>> specific problems to manage the fork and wait APIs ?  the second
>>>>> problem with calls is a blocking wait() call in the same condition
>>>>> but this time the son process is finished but the wait call in the
>>>>> father stays blocked, again it's a generic Unix code
>>>>>
>>>>> If there is no evidence, ask me for more informations
>>>>
>>>> The second problem sounds like what I am encountering
>>>> (http://www.freebsd.org/cgi/query-pr.cgi?pr=3D77818) with zsh for my
>>>> shell.  You did suspend (sigsuspend()) SIGCHLD before the fork?  By
>>>
>>>
>>> Ah ha!  I see the problem that has been causing me this problem and
>>> probably you too.  Signal suspensions (only these?) are not being
>>> copied with a double fork().  Here is an example program[1] to
>>> illustrate.  They do get copied on FreeBSD-4.10 and Linux.  I just do
>>> not know if they are supposed to be copied.
>>
>> I test your sample
>>
>> it's working on Linux and FreeBSD 4.0 but failing on FreeBDS 5.2 et
>> 5.3.  the process stays blocked on the suspend call
>>
>> I rewrite another sample with the same model, joined here, as we wrote
>> it in our main program. It's working also on Linux but failing on all
>> FreeBSD included FreeBSD 4.0, 5.2 et 5.3
>>
>> ...
>>
>> the wait call return with an errno ECHILD ??
>
> The children are exiting before the parents (due to sleep()'s) get to
> their wait()'s.
>
>> did you have any idea if the problem will be solve by the FreeBSD team
>> or not ?
>
> I updated my bug report and tried to notify David Xu but the e-mail
> server rejected the e-mail (too many "Received" headers).  I am also
> Cc'ing Greg Lehey since he ran into a possibly similar bug[1] in
> February.

Now that I've had time to look at it, both problems appear to be
related to signals, but that's about as far as it goes.  I wouldn't
expect any connection unless it's a general signal race condition.

Greg
--
See complete headers for address and phone numbers.

--FiqEyLLt06qkB6ow
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFCkTR0IubykFB6QiMRAt4IAKCczrRdzwdevPW32zSBjhevHXGdgwCdGPlh
NqrP6AHzNpyTIS+KySWv3Y4=
=bdtN
-----END PGP SIGNATURE-----

--FiqEyLLt06qkB6ow--



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