This backtrace seems to say that the call to sigprocmask allowed a pending SIGPIPE to occur, and it was not handled. It is supposed to be handled. So the question is, why wasn't it.
This code in process.c looks suspect to me. If it calls report_file_error, the old sigpipe handler would not be restored. while (this > 0) { int outfd = XINT (p->outfd); old_sigpipe = (SIGTYPE (*) ()) signal (SIGPIPE, send_process_trap); #ifdef DATAGRAM_SOCKETS if (DATAGRAM_CHAN_P (outfd)) { rv = sendto (outfd, (char *) buf, this, 0, datagram_address[outfd].sa, datagram_address[outfd].len); if (rv < 0 && errno == EMSGSIZE) report_file_error ("sending datagram", Fcons (proc, Qnil)); } else #endif That could only have been the cause of the problem if you used a datagram socket. That's unusual, isn't it? So I don't know if this could be related to the problem. But I think the patch below would fix this bug. *** process.c 25 Mar 2005 20:46:49 -0500 1.450 --- process.c 07 May 2005 12:56:33 -0400 *************** *** 5299,5305 **** 0, datagram_address[outfd].sa, datagram_address[outfd].len); if (rv < 0 && errno == EMSGSIZE) ! report_file_error ("sending datagram", Fcons (proc, Qnil)); } else #endif --- 5299,5309 ---- 0, datagram_address[outfd].sa, datagram_address[outfd].len); if (rv < 0 && errno == EMSGSIZE) ! { ! signal (SIGPIPE, old_sigpipe); ! report_file_error ("sending datagram", ! Fcons (proc, Qnil)); ! } } else #endif _______________________________________________ Emacs-pretest-bug mailing list Emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug