threads/119920: fork broken in libpthread

Daniel Eischen deischen at freebsd.org
Thu Jan 24 14:38:51 PST 2008


On Thu, 24 Jan 2008, Alfred Perlstein wrote:

> * Daniel Eischen <deischen at freebsd.org> [080124 14:28] wrote:
>> On Thu, 24 Jan 2008, Alfred Perlstein wrote:
>>
>>> * Julian Elischer <julian at 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 at velocity-servers.net>
>>>>> To: bug-followup at 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 at freebsd.org mailing list
>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
>>>>> To unsubscribe, send any mail to
>>>>> "freebsd-threads-unsubscribe at 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


More information about the freebsd-threads mailing list