On Tue, Aug 20, 2002 at 12:24:51PM -0400, David Collier-Brown wrote: > Fredrik Ohrn wrote: > > Sooner or later the smbd dies on a SIGPIPE when trying to send a > > keepalive. The SIGPIPE isn't catched, thus it leaves stale sharemodes. > > Thank you, Oh Kind Person! > (I was wondering how this could possibly happen, you see) > > > > Program received signal SIGPIPE, Broken pipe. > > 0x4015e332 in send () from /lib/libc.so.6 > > (gdb) bt > > #0 0x4015e332 in send () from /lib/libc.so.6 > > #1 0x0812f81d in sys_send () > > #2 0x0813e90b in write_socket_data () > > #3 0x0813e70b in send_keepalive () > > #4 0x080a2348 in timeout_processing () > > #5 0x080a264e in smbd_process () > > #6 0x08069959 in main () > > #7 0x4008a280 in __libc_start_main () from /lib/libc.so.6 > > (gdb) cont > > Continuing. > > > > Program terminated with signal SIGPIPE, Broken pipe. > > The program no longer exists. > > (gdb) > > > > Things to note is that the client is alive and have had no (obvious) > > reason to drop the connection or otherwise stop responding. I have tried > > this over and over and it's allways in send_keepalive that the SIGPIPE of > > death happens.
The problem is this shouldn't happen - we block all SIGPIPE signals in smbd startup..... If we're getting them there is a problem somewhere. Remember, running under gdb may reset the process signal mask - when not running under gdb we will never see SIGPIPE. Jeremy.
