Date: Sat, 30 Jun 2007 08:04:48 -0700 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Michiel Boland <michiel@boland.org> Cc: freebsd-current@freebsd.org Subject: Re: tcsh hangs in sigsuspend Message-ID: <20070630150448.GA70741@troutmask.apl.washington.edu> In-Reply-To: <Pine.GSO.4.64.0706301632320.29496@neerbosch.nijmegen.internl.net> References: <Pine.GSO.4.64.0706301632320.29496@neerbosch.nijmegen.internl.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jun 30, 2007 at 04:41:42PM +0200, Michiel Boland wrote: > Hi. I can no longer do simple things like > > kill `cat pidfile` > > in tcsh. > > After some debugging I noticed that tcsh hangs in sigsuspend in line 512 > of sh.proc.c. So I guess it (tcsh) executed 'cat pidfile', and now waits > for the process to terminate. But unless I'm not looking properly, there > appears to be a race condition here. Tcsh blocks the SIGCHLD signal > *after* it forks the child, not before. So the child could wel have exited > between the call to fork and the call to sigprocmask. In that case, would > not the sigsuspend hang forever? > > Also, I noticed that gdb gets very confused if I try to debug tcsh with > a backticked command like the one above. (I guess this is the same as > bin/112408) > I suspect it is the same problem. Unfortunately, the author of tcsh does not have a publicly available source tree, so one cannot determine if the problem is fixed. It looks like you've managed to go beyond the limited debugging I did in bin/112408. Hopefully, this gets addressed before 7.0 is released. -- Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070630150448.GA70741>