Date: Tue, 2 Dec 2008 23:31:40 GMT From: Steve Watt <steve@watt.com> To: freebsd-gnats-submit@FreeBSD.org Subject: bin/129378: [t]csh loses foreground process group Message-ID: <200812022331.mB2NVevN058045@www.freebsd.org> Resent-Message-ID: <200812022340.mB2Ne1Js045624@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 129378 >Category: bin >Synopsis: [t]csh loses foreground process group >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Dec 02 23:40:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Steve Watt >Release: 6.4-PRE as of 16 Sept 08 23:30Z >Organization: Watt Consultants >Environment: FreeBSD wattres.Watt.COM 6.4-PRERELEASE FreeBSD 6.4-PRERELEASE #11: Mon Nov 24 12:04:45 PST 2008 root@wattres.Watt.COM:/usr/obj/usr/src/sys/WATTRES i386 >Description: tcsh 6.15.00 appears to lose track of the foreground process group when SIGINT comes in during backquote expansion. This problem does not show up with tcsh 6.14.00. The symptom is that when I do a long-ish running task inside a `` expansion that I then ^C, nobody gets the foreground process group... I never get a prompt back after the ^C, and ^T gets me load: 0.27 no foreground process group Sending SIGCHLD and/or SIGCONT to the tcsh doesn't seem to make any difference at all. The tcsh is sitting in "pause" WCHAN, which seems sensible. A truss on tcsh reveals (oddly enough) that it's sitting in sigsuspend(). Sending it signals makes it loop through a wait4() call and go back into sigsuspend(). It happens running either as root (from sudo) or as a regular user. It happens under xterm, under ssh sessions, and on a direct console login. One portable reproduction: # cd /usr/src # less `egrep -lir '^Foo.*baz' *` ^Cload: 0.02 no foreground process group (I typed ^C ^T) SIGKILL to the shell seems to be the only way to get things back, and it does in your shell. I also got a "me too" from my posting on -hackers about this which stated that a SIGHUP would also make the shell go away. >How-To-Repeat: % cd /usr/src % less `egrep -lir '^Foo.*baz' *` ^C^T >Fix: Use tcsh 6.14.00 (probably not a desirable workaround). >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812022331.mB2NVevN058045>