Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jan 2008 17:38:48 -0500 (EST)
From:      Daniel Eischen <deischen@freebsd.org>
To:        Alfred Perlstein <alfred@freebsd.org>
Cc:        Gary Stanley <gary@velocity-servers.net>, Julian Elischer <julian@elischer.org>, freebsd-threads@freebsd.org
Subject:   Re: threads/119920: fork broken in libpthread
Message-ID:  <Pine.GSO.4.64.0801241737330.16957@sea.ntplx.net>
In-Reply-To: <20080124223133.GU99258@elvis.mu.org>
References:  <200801240850.m0O8o2JQ023500@freefall.freebsd.org> <4798564B.7070500@elischer.org> <20080124222339.GT99258@elvis.mu.org> <Pine.GSO.4.64.0801241732070.16957@sea.ntplx.net> <20080124223133.GU99258@elvis.mu.org>

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

On Thu, 24 Jan 2008, Alfred Perlstein wrote:

> * Daniel Eischen <deischen@freebsd.org> [080124 14:28] wrote:
>> On Thu, 24 Jan 2008, Alfred Perlstein wrote:
>>
>>> * Julian Elischer <julian@elischer.org> [080124 01:17] wrote:
>>>> Gary Stanley wrote:
>>>>> The following reply was made to PR threads/119920; it has been noted by
>>>>> GNATS.
>>>>>
>>>>> From: Gary Stanley <gary@velocity-servers.net>
>>>>> To: bug-followup@FreeBSD.org
>>>>> Cc:
>>>>> Subject: Re: threads/119920: fork broken in libpthread
>>>>> Date: Thu, 24 Jan 2008 03:24:47 -0500
>>>>>
>>>>> I also have this problem, see threads/118715
>>>>>
>>>>> I was able to grab some ktrace info, but most of the time the process
>>>>> is stuck, and ktrace doesn't display any data.
>>>>>
>>>>> _______________________________________________
>>>>> freebsd-threads@freebsd.org mailing list
>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
>>>>> To unsubscribe, send any mail to
>>>>> "freebsd-threads-unsubscribe@freebsd.org"
>>>>
>>>> dan what IS the fix for this?  I assume you must have fixed it in
>>>> -current/7
>>>>
>>>> what was YOUR fix alfred?
>>>
>>> Attached.
>>
>> Which isn't a correct fix, BTW.  It is possible that the unlock
>> can try to give the lock to a non-existent thread.
>
> Yes, I understand that problem, but it's not clear to my why/how it can happen.
>
> I guess because another thread could put itself on the "blocked queue"
> for that lock?  Is there a way to prevent that or to clear the lock
> afterward?

Well, you don't have to worry about this if you use my
fix.  The thread locks are reinitialized and the KCB
and TCB are reset after the fork.

-- 
DE



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