[gnutls-dev]sigpipe behavior changed?

Neil Spring nspring@cs.washington.edu
Mon Jul 15 20:58:02 2002


Hi all,

I've used wmbiff with gnutls for a while now. I've been able
to apm suspend my machine, bring it back, and have wmbiff
notice that the connection has failed due to timeout and
reconnect.

Recently, since linking with gnutls 0.4 instead of 0.3.5,
wmbiff dies on resume.  Looking into it further, it appears
that it's taking a sigpipe.

  Program received signal SIGPIPE, Broken pipe.
  0x402748b2 in send () from /lib/libc.so.6
  (gdb) where
  #0  0x402748b2 in send () from /lib/libc.so.6
  #1  0x401783b4 in _gnutls_io_write_buffered () from /usr/lib/libgnutls.so.4
  #2  0x9bbd3850 in ?? ()
  Cannot access memory at address 0x10315
  (gdb) c
  Continuing.
  
  Program terminated with signal SIGPIPE, Broken pipe.
  The program no longer exists.

  (gdb) 

Now, I may have damaged things in the code of wmbiff, and
the fix for wmbiff is trivial (call sigaction and ignore the
signal).  I thought I should post this message to confirm
that this is expected behavior, and that the august 26, 2001
entry in the changelog (the only one I can find that 
mentions signals) does not apply:

2001-08-26 14:44  nmav <nmav@gnutls.org>

        * acconfig.h (tags: gnutls_0_2_10, gnutls_0_2_9, gnutls_0_2_3),
        configure.in, lib/gnutls_global.c:

        use of sigaction instead of signal(), to ignore SIGPIPE 

My apologies if I'm reporting a bug that has been fixed in
0.5.0.

So the question is, is gnutls supposed to ignore sigpipe?

thanks,
-neil