[distcc] Re: Using distcc with a new build system

nadim khemir nadim at khemir.net
Mon Dec 20 22:07:45 GMT 2004

Martin Pool wrote:

>> Is distcc waiting for a zombie process here? The first idea we had was
>> that SIG_CHILD wasn't handled properly. But while we were talking about
>> it, thinking the build was dead in the water, we were surprised to see
>> the build complete!!!!
> I don't understand the problem.  What's wrong with having a zombie
> present for a short period of time?
That was about 30 seconds, but as I wrote before this is most certainly due
to an error we had in our code (socket flushing, etc..). I will look into
distcc code (when I have time :-) to understand how distcc interacted with
our error. The error is now conceptually impossible and we haven't had any
problem with distcc since it was fixed (350 compilations of 300 files under
different loads). 

>> The problem was that distcc had filled my $TMP
>> directories with 4000 rti files
> Maybe gcc leaves temp files around if it's interrupted, or maybe you
> were invoking gcc with -preserve-temps (or whatever it's called).
My bad, I have a '-dr' switch in my command line and gcc puts the generated
files in the !@#! current directory which happends to be $TMP on a server
machine but in my source tree on the client machine. This also means that I
get much more files on the server because distcc names the input file to
gcc differently every time it invokes it (if I am right). I compiled the
same 300 files 350 times. locally the files have the same names for each
run and override each other. but on the server each run generates a new
name. I believe distcc should handle the -dr switch for two reasons:

1/ It is likely that the disk will get filled by all those '.rti' files. It
happened to me, rather fast.

2/ I think it would be cool to be able to generate those files using distcc.
Right now the files are indeed generated on the servers but the are never
copied back to the client. Forcing one to compile everything locally.

I use the files with Egypt (available on the net), Lybia (own tool, very
simple) and Tunisia (also own tool under development)

Cheers, Nadim.

More information about the distcc mailing list