From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Dec 15 06:00:25 2010 Return-Path: Delivered-To: freebsd-ports-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 098FE10656AB for ; Wed, 15 Dec 2010 06:00:25 +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 B0E758FC1A for ; Wed, 15 Dec 2010 06:00:22 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id oBF60Mg2082327 for ; Wed, 15 Dec 2010 06:00:22 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id oBF60MeJ082326; Wed, 15 Dec 2010 06:00:22 GMT (envelope-from gnats) Resent-Date: Wed, 15 Dec 2010 06:00:22 GMT Resent-Message-Id: <201012150600.oBF60MeJ082326@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Duncan Findlay Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4CEAF106566C for ; Wed, 15 Dec 2010 05:52:24 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (unknown [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 3B4A28FC08 for ; Wed, 15 Dec 2010 05:52:24 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id oBF5qNiK087983 for ; Wed, 15 Dec 2010 05:52:23 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id oBF5qNhV087982; Wed, 15 Dec 2010 05:52:23 GMT (envelope-from nobody) Message-Id: <201012150552.oBF5qNhV087982@red.freebsd.org> Date: Wed, 15 Dec 2010 05:52:23 GMT From: Duncan Findlay To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/153167: Problem with signals, threads, and subprocesses in python X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Dec 2010 06:00:25 -0000 >Number: 153167 >Category: ports >Synopsis: Problem with signals, threads, and subprocesses in python >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Dec 15 06:00:22 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Duncan Findlay >Release: 7.3 >Organization: >Environment: >Description: The patch added to the python port intended to fix PR 131080 has the unintended consequence of blocking signals in any subprocess spawned from a thread. If you start a process in a Python thread, the process can not be killed. This is a serious issue for us as we frequently spawn sub-processes from within threads of our daemon applications, and we need to be able to kill them, if they run too long, or the daemon needs to shutdown, etc. PR 131080: http://www.freebsd.org/cgi/query-pr.cgi?pr=131080 Original Python issue: http://bugs.python.org/issue1975 >How-To-Repeat: This test case shows the problem: http://bugs.python.org/file20047/thread_test.py Also: Example code (example.py): import subprocess import threading def create(): sub = subprocess.Popen( args=('sleep', '60'), cwd=None, env=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) print 'Started process %d' % (sub.pid,) if __name__ == '__main__': thr = threading.Thread(target=create) thr.start() thr.join() Example output: $ python example.py Started process 90813 $ ps -p 90813 PID TT STAT TIME COMMAND 90813 p0 S 0:00.00 sleep 60 $ kill 90813 $ ps -p 90813 PID TT STAT TIME COMMAND 90813 p0 S 0:00.00 sleep 60 >Fix: >Release-Note: >Audit-Trail: >Unformatted: