Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Apr 1997 22:36:08 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        ache@nagual.ru, current@FreeBSD.ORG, dyson@FreeBSD.ORG
Subject:   Re: Recent vfork kernel changes broke csh & tcsh!
Message-ID:  <199704221236.WAA18843@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> Both csh and tcsh affected in the similar way.
>
>I forgot to mention that I am shure it is vfork problem because it
>disappearse when I change vfork to fork in csh or tcsh.

It wasn't completely clear that you have to start from csh or tcsh
to see the bug.

It may be a csh bug.  csh does a lot of work to preserve the parent
state.  It's not clear that this can work with an optimising compiler.
However, compiling without -O and declaring all local variables as
volatile didn't help.

It's silly that csh ttempts to optimize forks but sh doesn't.

I think I found other bugs while attempting to debug this:

  UID   PID  PPID CPU PRI NI   VSZ  RSS WCHAN  STAT  TT       TIME COMMAND
   15  7403     1   0 -18  0   440    0 thrd_s DE    v3-   0:00.00  (csh)
					       ^ unkillable disk wait
					         (parent was gdb)
   15  7742  7403   2  28  0     0    0 -      Z     v3-   0:00.00  (sh)
   15  8334     1   0 -18  0   440    0 thrd_s DE    v3-   0:00.00  (csh)
					       ^ easy to reproduce
   15  8336  8334   3  28  0     0    0 -      Z     v3-   0:00.00  (sh)
   15  8846     1   1  -6  0     0    0 -      Z     v3-   0:00.00  (bash)
					       ^ exiting login shell hung
   15  8916     1   0 -18  0   440    0 thrd_s DE    v3-   0:00.00  (csh)
   15  8917  8916   4  29  0     0    0 -      Z     v3-   0:00.00  (sh)
   15  8918     1   0  10  0   248  484 wait   S     v3-   0:00.13 /bin/sh /tmp

To reproduce this using a statically linked csh:

1) gdb csh
2) put a breakpoint at the first statement in the parent.
3) r
4) /tmp/a.sh
5) s [repeat this until the first function call (xfree).  Then there is
      an unexpected EFAULT and csh in state DE]

More fiddling with this gave a completely revoked ttyv3 with no getty on
it since the login shell didn't exit properly.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704221236.WAA18843>