Skip site navigation (1)Skip section navigation (2)
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>