tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: fd-passing (mis)behaviour: confirm/refute?
>> Could I possibly get you to ktrace it or some such to find out
>> what's making it die?
> One process gets a SIGPIPE.
> 25570 1 unfdstress CALL write(0xb,0x11e14,0xa)
> 25570 1 unfdstress RET write -1 errno 32 Broken pipe
> 25570 1 unfdstress PSIG SIGPIPE SIG_DFL: code=SI_NOINFO
Okay, that's a failure mode I hadn't seen myself and didn't trap. I'm
not sure whether I'd rather ignore SIGPIPE and let EPIPE happen or set
up a SIGPIPE handler, but I probably should do one of the two.
Those systems, then, are manifesting the problem, in that the stressing
processes are causing unrelated processes to see connections as broken
when they shouldn't be.
> Before that, everything is fighting to synchronize and most sendmsg()
> and write() fail with ENOBUFS.
Yup, that's the stressing processes operating as designed. They send
vigorously - see busy_a() and busy_b().
Interestingly, I have since tested it on (mutant) 4.0.1 and it works
just fine, even under stress. I can't as test it on 1.4T because the
program is written to the broken CMSG_* API, which 1.4T predates.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index