Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Jan 2008 23:23:30 -0500 (EST)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Landon Fuller <landonf@bikemonkey.org>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: threads/119920: fork broken in libpthread
Message-ID:  <Pine.GSO.4.64.0801292320260.15096@sea.ntplx.net>
In-Reply-To: <892A73B3-0114-4718-ABC0-CADD45D9D0FA@bikemonkey.org>
References:  <200801240850.m0O8o2JQ023500@freefall.freebsd.org> <4798564B.7070500@elischer.org> <Pine.GSO.4.64.0801240957550.16059@sea.ntplx.net> <488DBC6A-CF33-4E50-B1BB-C396C8957F92@bikemonkey.org> <Pine.GSO.4.64.0801291611130.12689@sea.ntplx.net> <892A73B3-0114-4718-ABC0-CADD45D9D0FA@bikemonkey.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 29 Jan 2008, Landon Fuller wrote:

>
> On Jan 29, 2008, at 13:13, Daniel Eischen wrote:
>>> 
>> 
>> There is a bug somewhere else or something is stomping
>> on the thread's lockuser.  It is allocated once when the
>> thread is created and should never be null thereafter.
>> Hence, it should never be malloc'd and the reinit should
>> be sufficient.
>
> I'm totally unfamiliar with KSE, so perhaps this a stupid question -- it 
> seems to solve the issue locally, so I'll ask it --
> Why not place the fork() code inside of _kse_critical_enter / 
> _kse_critical_leave, to ensure upcalls are blocked while re-initializing in 
> the child process post-fork?

That just prevents an upcall from happening (which my patch solves),
but doesn't prevent the corruption of the lockuser or lock.  My
patch does solve this in -current, but -stable probably lacks
a few other patches.  It (-stable) really needs all of -current's
code, not just this patch.

-- 
DE



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