From owner-freebsd-threads@FreeBSD.ORG Tue Jan 29 21:30:14 2008 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12A4A16A417 for ; Tue, 29 Jan 2008 21:30:14 +0000 (UTC) (envelope-from eischen@vigrid.com) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id ABA1E13C442 for ; Tue, 29 Jan 2008 21:30:13 +0000 (UTC) (envelope-from eischen@vigrid.com) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.2/8.14.2/NETPLEX) with ESMTP id m0TLD2uO021434; Tue, 29 Jan 2008 16:13:02 -0500 (EST) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.0 (mail.netplex.net [204.213.176.10]); Tue, 29 Jan 2008 16:13:02 -0500 (EST) Date: Tue, 29 Jan 2008 16:13:02 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Landon Fuller In-Reply-To: <488DBC6A-CF33-4E50-B1BB-C396C8957F92@bikemonkey.org> Message-ID: References: <200801240850.m0O8o2JQ023500@freefall.freebsd.org> <4798564B.7070500@elischer.org> <488DBC6A-CF33-4E50-B1BB-C396C8957F92@bikemonkey.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-threads@freebsd.org Subject: Re: threads/119920: fork broken in libpthread X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jan 2008 21:30:14 -0000 On Tue, 29 Jan 2008, Landon Fuller wrote: > > On Jan 24, 2008, at 07:08, Daniel Eischen wrote: > >> On Thu, 24 Jan 2008, Julian Elischer wrote: >> >>> Gary Stanley wrote: >>>> The following reply was made to PR threads/119920; it has been noted by >>>> GNATS. >>>> >>>> From: Gary Stanley >>>> 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 >> >> You want cvs diff -u -r1.126 -r1.128 src/lib/libkse/thread/thr_kern.c. >> The WARNS'ify diffs are not necessary, so it should look something >> like shown below. Probably an MFC of all of libkse (minus jasone's >> malloc changes) should be done to -7 and -6. > > There appears to be a remaining issue I'm still seeing locally, with the > above patch; I wasn't able to reproduce this on 6.2: > > #0 0x0000000800648b13 in mutex_lock_common (curthread=0x0, m=0x8007616e8, > abstime=0x0) at /usr/src/lib/libpthread/thread/thr_mutex.c:503 > #1 0x000000080064ac25 in _pthread_mutex_lock (m=0x8007616e8) at > /usr/src/lib/libpthread/thread/thr_mutex.c:868 > #2 0x000000080063e9ce in _spinlock (lck=0x8009ac200) at > /usr/src/lib/libpthread/thread/thr_spinlock.c:97 > #3 0x00000008007eafc3 in pubrealloc (ptr=0x0, size=24, func=0x8008802b7 " in > malloc():") at /usr/src/lib/libc/stdlib/malloc.c:1090 > #4 0x00000008007eb1e1 in malloc (size=24) at > /usr/src/lib/libc/stdlib/malloc.c:1150 > #5 0x000000080065ab8c in _lockuser_init (lu=0x52e068, priv=0x52e000) at > /usr/src/lib/libpthread/sys/lock.c:99 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. -- DE