X-Loop: help-debbugs@HIDDEN Subject: bug#15781: timeout: Child gets SIGTTOU when run from a shell script Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady <pbrady@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-coreutils@HIDDEN Resent-Date: Fri, 01 Nov 2013 13:43:03 +0000 Resent-Message-ID: <handler.15781.B.138331336325346 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 15781 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: "Richard W.M. Jones" <rjones@HIDDEN> Cc: 15781 <at> debbugs.gnu.org X-Debbugs-Original-Cc: Report bugs to <bug-coreutils@HIDDEN> Received: via spool by submit <at> debbugs.gnu.org id=B.138331336325346 (code B ref -1); Fri, 01 Nov 2013 13:43:03 +0000 Received: (at submit) by debbugs.gnu.org; 1 Nov 2013 13:42:43 +0000 Received: from localhost ([127.0.0.1]:56948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1VcEzq-0006aj-8w for submit <at> debbugs.gnu.org; Fri, 01 Nov 2013 09:42:42 -0400 Received: from eggs.gnu.org ([208.118.235.92]:58578) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <pbrady@HIDDEN>) id 1VcDIt-0003ru-Io for submit <at> debbugs.gnu.org; Fri, 01 Nov 2013 07:54:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <pbrady@HIDDEN>) id 1VcDIf-0007uy-Pa for submit <at> debbugs.gnu.org; Fri, 01 Nov 2013 07:54:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:38849) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <pbrady@HIDDEN>) id 1VcDIf-0007uu-MS for submit <at> debbugs.gnu.org; Fri, 01 Nov 2013 07:54:01 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60278) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <pbrady@HIDDEN>) id 1VcDIZ-0006A9-JU for bug-coreutils@HIDDEN; Fri, 01 Nov 2013 07:54:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <pbrady@HIDDEN>) id 1VcDIT-0007sX-II for bug-coreutils@HIDDEN; Fri, 01 Nov 2013 07:53:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37402) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <pbrady@HIDDEN>) id 1VcDIT-0007sG-A8 for bug-coreutils@HIDDEN; Fri, 01 Nov 2013 07:53:49 -0400 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rA1BrlPb031041 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <bug-coreutils@HIDDEN>; Fri, 1 Nov 2013 07:53:47 -0400 Received: from [10.36.116.27] (ovpn-116-27.ams2.redhat.com [10.36.116.27]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id rA1BriND029378 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 1 Nov 2013 07:53:46 -0400 Message-ID: <52739648.1070901@HIDDEN> Date: Fri, 01 Nov 2013 11:53:44 +0000 From: =?UTF-8?Q?P=C3=A1draig?= Brady <pbrady@HIDDEN> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 References: <20131101081028.GA18071@HIDDEN> In-Reply-To: <20131101081028.GA18071@HIDDEN> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by mx1.redhat.com id rA1BrlPb031041 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Mailman-Approved-At: Fri, 01 Nov 2013 09:42:40 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -5.0 (-----) On 11/01/2013 08:10 AM, Richard W.M. Jones wrote: > Grab the tiny 'run' and 'test.c' attachments from here: >=20 > https://bugzilla.redhat.com/show_bug.cgi?id=3D1025269#c5 >=20 > $ cd /tmp > $ gcc -Wall test.c -o test > $ ./test # this is ok > $ timeout 4h ./test # this is ok >=20 > $ cat ./run > #!/bin/bash - > timeout 4h ./test >=20 > $ ./run # this HANGS >=20 > The run script simply runs the same timeout command as before, from a > shell script, but this time the test child process gets SIGTTOU and > suspends itself, resulting in a hang. >=20 > I was able to fix this by *removing* the following lines in > src/timeout.c: >=20 > /* exec doesn't reset SIG_IGN -> SIG_DFL. */ > signal (SIGTTIN, SIG_DFL); > signal (SIGTTOU, SIG_DFL); >=20 > In other words, leave SIGTTOU as SIG_IGN in the child process (which > seems to make sense -- since the child is a backgrounded process, but > we want it to be able to print things, we don't want it to get SIGTTOU > signals when it outputs to the terminal). >=20 > Anyway, I don't understand why this only happens when run from a shell > script, and not from a terminal. Presumably bash does something > strange with SIGTTOU. Probably something to do with job control If you `set -m` first in the script, then the test binary doesn't hang. > Also I don't understand from looking at the kernel code why it's > sending SIGTTOU in one case but not the other. The relevant code is > in drivers/tty/tty_io.c:tty_check_change but AFAICT it should send the > signal in both cases. >=20 > Rich. >=20 Ugh these signals are really hairy to think about, there are all sorts of edge cases here. I did a version of timeout once that put the child in it's own group, and noted in that version that I needed to leave SIGTTOU as IGN as tcsetpgrp(0, getpid()) caused SIGTTOU to be sent and I wasn't sure why. Maybe we should be resetting SIGTT{OU,IN} to what it was previously set to, rather than SIG_DFL? P=E1draig.
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: =?UTF-8?Q?P=C3=A1draig?= Brady <pbrady@HIDDEN> Subject: bug#15781: Acknowledgement (timeout: Child gets SIGTTOU when run from a shell script) Message-ID: <handler.15781.B.138331336325346.ack <at> debbugs.gnu.org> References: <52739648.1070901@HIDDEN> X-Gnu-PR-Message: ack 15781 X-Gnu-PR-Package: coreutils Reply-To: 15781 <at> debbugs.gnu.org Date: Fri, 01 Nov 2013 13:43:04 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-coreutils@HIDDEN If you wish to submit further information on this problem, please send it to 15781 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 15781: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D15781 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
Received: (at control) by debbugs.gnu.org; 1 Nov 2013 13:54:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 01 09:54:45 2013 Received: from localhost ([127.0.0.1]:56969 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1VcFBV-0006to-H2 for submit <at> debbugs.gnu.org; Fri, 01 Nov 2013 09:54:45 -0400 Received: from mail4.vodafone.ie ([213.233.128.170]:51061) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <P@HIDDEN>) id 1VcFBS-0006tX-Mm for control <at> debbugs.gnu.org; Fri, 01 Nov 2013 09:54:43 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApUBAEayc1JtTemc/2dsb2JhbAANTJA4sD+CcwEBCIE0gxoBAQSBCQsNFBYPCQMCAQIBRRMIAQGICKoJkzCPXxaEGAOebo5L Received: from unknown (HELO [192.168.1.79]) ([109.77.233.156]) by mail3.vodafone.ie with ESMTP; 01 Nov 2013 13:54:26 +0000 Message-ID: <5273B291.1070703@HIDDEN> Date: Fri, 01 Nov 2013 13:54:25 +0000 From: =?ISO-8859-1?Q?P=E1draig_Brady?= <P@HIDDEN> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: control <at> debbugs.gnu.org Subject: Re: bug#15781: timeout: Child gets SIGTTOU when run from a shell script References: <20131101081028.GA18071@HIDDEN> <52739648.1070901@HIDDEN> In-Reply-To: <52739648.1070901@HIDDEN> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) forcemerge 15781 15779 stop
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.