From owner-freebsd-threads@FreeBSD.ORG Thu Aug 3 17:40:29 2006 Return-Path: X-Original-To: freebsd-threads@hub.freebsd.org Delivered-To: freebsd-threads@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4766216A4DE for ; Thu, 3 Aug 2006 17:40:29 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1AE5E43D7E for ; Thu, 3 Aug 2006 17:40:16 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k73HeFc2008805 for ; Thu, 3 Aug 2006 17:40:15 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k73HeFxg008801; Thu, 3 Aug 2006 17:40:15 GMT (envelope-from gnats) Resent-Date: Thu, 3 Aug 2006 17:40:15 GMT Resent-Message-Id: <200608031740.k73HeFxg008801@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-threads@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Poul-Henning Kamp Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9E99616A4DD for ; Thu, 3 Aug 2006 17:36:35 +0000 (UTC) (envelope-from phk@critter.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.FreeBSD.org (Postfix) with ESMTP id EB61043D45 for ; Thu, 3 Aug 2006 17:36:32 +0000 (GMT) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (critter.freebsd.dk [192.168.48.2]) by phk.freebsd.dk (Postfix) with ESMTP id C7A6C170C5 for ; Thu, 3 Aug 2006 17:36:31 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.13.7/8.13.7) with ESMTP id k739Osdr016407 for ; Thu, 3 Aug 2006 09:24:54 GMT (envelope-from phk@critter.freebsd.dk) Received: (from phk@localhost) by critter.freebsd.dk (8.13.7/8.13.7/Submit) id k739OrJ1016406; Thu, 3 Aug 2006 09:24:53 GMT (envelope-from phk) Message-Id: <200608030924.k739OrJ1016406@critter.freebsd.dk> Date: Thu, 3 Aug 2006 09:24:53 GMT From: Poul-Henning Kamp To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: threads/101323: fork(2) in threaded programs broken. X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Poul-Henning Kamp List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Aug 2006 17:40:29 -0000 >Number: 101323 >Category: threads >Synopsis: fork(2) in threaded programs broken. >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-threads >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Aug 03 17:40:15 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Poul-Henning Kamp >Release: FreeBSD 7.0-CURRENT i386 >Organization: >Environment: System: FreeBSD critter.freebsd.dk 7.0-CURRENT FreeBSD 7.0-CURRENT #5: Wed Jul 5 22:14:32 UTC 2006 root@critter.freebsd.dk:/critter/obj/critter/src/sys/TP41P i386 >Description: Forking a threaded process and starting a thread in the child process does not work. Tested on -current and releng_6 and both fails with more or less the same error message: Fatal error 'mutex is on list' at line 540 in file /usr/src/lib/libpthread/thread/thr_mutex.c (errno = 0) >How-To-Repeat: #include #include void * thr_sleeper(void *arg) { (void)arg; while (1) { printf("%d\n", getpid()); sleep (1); } } int main(int argc, char **argv) { pthread_t t1, t2; (void)argc; (void)argv; pthread_create(&t1, NULL, thr_sleeper, NULL); if (!fork()) { pthread_create(&t2, NULL, thr_sleeper, NULL); while(1) sleep(1); } while(1) sleep(1); } >Fix: >Release-Note: >Audit-Trail: >Unformatted: