Answering the following questions is a big help:
1. What version of distcc are you using (e.g. "2.7.1")? You can run "distcc
--version" to see. If you got distcc from a distribution package rather than
building from source, please say which one.
[mark@buildserver .ccache]$ distcc --version
distcc 3.1 i686-pc-linux-gnu
(protocols 1, 2 and 3) (default port 3632)
built Jan 25 2011 18:20:05
[mark@buildserver distcc-trunk]$ svn info
URL: http://distcc.googlecode.com/svn/trunk
Repository Root: http://distcc.googlecode.com/svn
Revision: 735
2. What platform are you running on (e.g. "Red Hat 8.0", "HP-UX 11.11")? What
compilare are you using ("gcc 3.3")? Run "uname -a" and "cc --version" to see.
[mark@buildserver distcc-trunk]$ uname -a
Linux buildserver 2.6.27.5-117.fc10.i686.PAE #1 SMP Tue Nov 18 12:08:10 EST
2008 i686 i686 i386 GNU/Linux
[mark@buildserver distcc-trunk]$ mipsel-linux-gcc --version
mipsel-linux-gcc (GCC) 4.2.0 20070124 (prerelease) - BRCM 10ts-20080721
3. What were you trying to do (e.g. "install distcc", "build Mozilla")?
I was trying to build the tiff library (tiff-3.7.4).
4. What went wrong? Did you get an error message, did it hang, did it build a
program that didn't work, did it not distribute compilation to machines that
ought to get it?
It hang.
No output from pre-processor, compiler hangs, make hangs.
ps output is attached as ps.log
5. If you have an example of a compiler invocation that failed, quote it, in
full:
/usr/local/bin/distcc /opt/bcm-crosstools/bin/mipsel-linux-gcc -DHAVE_CONFIG_H
-I. -I. -I. -I. -I/mnt/disk2/mark/bbtv/DEPLOY/BCM3556/include
-D_FORTIFY_SOURCE=0 -DLB_PLATFORM_BCM3556=1
-I/mnt/disk2/mark/bbtv/DEPLOY/BCM3556/inc
lude -D_FORTIFY_SOURCE=0 -DLB_PLATFORM_BCM3556=1 -DLB_VERSION=4
-DLB_PLATFORM_BCM=1 -Wall -MT tif_jpeg.lo -MD -MP -MF .deps/tif_jpeg.Tpo -c
tif_jpeg.c -fPIC -DPIC -o .libs/tif_jpeg.o
6. What error logging do you get? Turn on client and server error logging. On
the client, set these environment variables, and try to reproduce the problem:
=export DISTCC_VERBOSE=1 DISTCC_LOG=/tmp/distcc.log=. Start the server with
the --verbose option. If the problem is intermittent, leave logging enabled and
then pull out the lines from the log file when the problem recurs.
Attached as distcc.log
7. If you got an error message on stderr, quote that error exactly. Find the
lines in the log files pertaining to the compile, and include all of them in
your report, by looking at the process ID in square brackets. If you can't work
that out, quote the last few hundred lines leading up to the failure.
8. Additional info:
I'm also attaching full strace output as tiff-strace.tar.gz
distcc_tiff.4047 corresponds to the process which hangs up (according to ps
output)
As I can see from it, the process hangs while trying to write to stderr:
===
write(2, "In file included from /mnt/disk2/"..., 78) = ? ERESTARTSYS (To be
restarted)
===
I'm also attaching the patch which fixes this issue. The patch simply assigns
stderr file when the cpp gets spawned via dcc_spawn_child() call.
Original issue reported on code.google.com by Starovoy...@gmail.com on 25 Jan 2011 at 4:23
Original issue reported on code.google.com by
Starovoy...@gmail.com
on 25 Jan 2011 at 4:23Attachments: