From owner-freebsd-bugs@FreeBSD.ORG Wed Jun 10 16:40:06 2009 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 671FA106566B for ; Wed, 10 Jun 2009 16:40:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 546908FC13 for ; Wed, 10 Jun 2009 16:40:06 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AGe6nZ007941 for ; Wed, 10 Jun 2009 16:40:06 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n5AGe6On007940; Wed, 10 Jun 2009 16:40:06 GMT (envelope-from gnats) Date: Wed, 10 Jun 2009 16:40:06 GMT Message-Id: <200906101640.n5AGe6On007940@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Andreas Longwitz Cc: Subject: Re: bin/102834: [patch] mail(1) hangs on the sigsuspend system call in popen.c X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Andreas Longwitz List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 16:40:06 -0000 The following reply was made to PR bin/102834; it has been noted by GNATS. From: Andreas Longwitz To: bug-followup@freebsd.org, longwitz@incore.de Cc: Subject: Re: bin/102834: [patch] mail(1) hangs on the sigsuspend system call in popen.c Date: Wed, 10 Jun 2009 18:36:43 +0200 --Boundary-00=_bE+LKNs2EjMVV2P Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline The described problem still occurs in all FreeBSD versions especially on SMP machines. The appended patch for 6.4 Stable works without problems for more than 3 years. Dr. Andreas Longwitz Data Service GmbH, Beethovenstr. 2A, 23617 Stockelsdorf --Boundary-00=_bE+LKNs2EjMVV2P Content-Type: text/x-diff; charset="iso 8859-15"; name="patch.popen.c.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch.popen.c.diff" --- popen.c.orig 2002-06-30 07:25:06.000000000 +0200 +++ popen.c 2009-05-07 15:58:19.000000000 +0200 @@ -364,11 +364,11 @@ int pid; { sigset_t nset, oset; - struct child *cp = findchild(pid); (void)sigemptyset(&nset); (void)sigaddset(&nset, SIGCHLD); (void)sigprocmask(SIG_BLOCK, &nset, &oset); + struct child *cp = findchild(pid); while (!cp->done) (void)sigsuspend(&oset); @@ -386,11 +386,11 @@ int pid; { sigset_t nset, oset; - struct child *cp = findchild(pid); (void)sigemptyset(&nset); (void)sigaddset(&nset, SIGCHLD); (void)sigprocmask(SIG_BLOCK, &nset, &oset); + struct child *cp = findchild(pid); if (cp->done) delchild(cp); --Boundary-00=_bE+LKNs2EjMVV2P--