[distcc] Re: upgrading from 2.16 to 2.17: compiler crashes

Dimitri Papadopoulos-Orfanos papadopo at www.NOSPAM.fr
Thu Aug 26 12:25:55 GMT 2004


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



More information about the distcc mailing list