On 12/18/14, 11:22 AM, Jiri Kukacka wrote:

> I checked what's going on using truss, and here's what is says (just the 
> interesting part):
> 1197:   read(0, " r", 1)                                = 1
> 1197:   lwp_sigmask(SIG_SETMASK, 0x00000002, 0x00000000, 0x00000000, 
> 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
> 1197:   write(2, " r", 1)                               = 1
> 1197:   lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 
> 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
> 1197:   read(0, " e", 1)                                = 1
> 1197:   lwp_sigmask(SIG_SETMASK, 0x00000002, 0x00000000, 0x00000000, 
> 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
> 1197:   write(2, " e", 1)                               = 1
> 1197:   lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000, 
> 0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
> 1197:   read(0, 0xFFFF80D532B7FE8C, 1)  (sleeping...)
> 1197:   read(0, 0xFFFF80D532B7FE8C, 1)                  = 0
> 1197:   write(2, "\n", 1)                               Err#5 EIO

OK, this is the problem part.  This looks like a bug in Solaris.  There's
no indication that the kernel sent SIGHUP before changing the behavior of
read and write upon disconnect.

Can you see whether or not the first bash in the chain gets a SIGHUP here?
(Though I can't see why or how sending a SIGHUP to any process other than
the tty's current foreground process group is useful.)

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to