[distcc] Re: upgrading from 2.16 to 2.17: compiler crashes
Dimitri Papadopoulos-Orfanos
papadopo at www.NOSPAM.fr
Thu Aug 26 09:41:48 GMT 2004
Hi,
Still about these distcc 2.17 crashes under heavy load.
I can't get any meaningful information from the core files, the stack
seems to be messed up. Therefore I tried to run distcc under Valgrind.
I've replaced distcc by a script that runs distcc under Valgrind:
#!/bin/sh
DISTCC_HOME=/usr/local/distcc-2.17-debug
exec valgrind --tool=memcheck \
$DISTCC_HOME/bin/distcc g++ ${1+"$@"} \
2>/tmp/valgrind-distcc-log.$$
exit 1
Unfortunately Valgrind doesn't seem to be of any help here. Here is the
log from one of the crashed distcc processes:
==10661== Memcheck, a memory error detector for x86-linux.
==10661== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==10661== Using valgrind-2.1.2, a program supervision framework for
x86-linux.
==10661== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==10661== For more details, rerun with: -v
==10661==
distcc[10661] ERROR: Connect timeout
==10661== Invalid read of size 1
==10661== at 0x52BFE094: ???
==10661== Address 0x76 is not stack'd, malloc'd or (recently) free'd
==10661==
==10661== Process terminating with default action of signal 11
(SIGSEGV): dumping core
==10661== Access not within mapped region at address 0x76
==10661== at 0x52BFE094: ???
==10661==
==10661== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 19 from 1)
==10661== malloc/free: in use at exit: 7453 bytes in 168 blocks.
==10661== malloc/free: 258 allocs, 90 frees, 33067 bytes allocated.
==10661== For a detailed leak analysis, rerun with: --leak-check=yes
==10661== For counts of detected errors, rerun with: -v
So it seems there is some invalid read in distcc, but Valgrind is unable
to tell where the error happens exactly. It's unable to analyse the
stack, just like the debugger.
Any clue on how to further debug this?
Regards,
Dimitri
More information about the distcc
mailing list