Hi,

The only place in distcc where longjmp is called is timeout.c.

I'm not at ease with longjmp() / setjmp() since I haven't used these functions for a long time. I'm wondering whether it's a problem with variable "timeout_jmpbuf". Maybe it's not initialized properly.


The code in timeout.c looks like:

dcc_timeout_arm(const int timeout, int phase)
{
     static enum dcc_phase saved_phase;

     saved_phase = phase;

     if (setjmp(timeout_jmpbuf)) {
          /* setjmp return through here if it timed out. */
          rs_log_error("%s timeout", dcc_get_phase_name(saved_phase));
          return EXIT_TIMEOUT;
     }


The crash happens always after a "Connect timeout" message, probably some time after line "setjmp(timeout_jmpbuf)" has been executed. Does this ring some bell?


Dimitri
__ distcc mailing list http://distcc.samba.org/
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/distcc

Reply via email to