[distcc] Knock, Knock, can distcc come out to play?

John Carter john.carter at tait.co.nz
Sun Sep 11 22:03:13 GMT 2005


So I have set up a largish distcc farm.

The only problem is people leave the company, people join, they forget and 
shutdown there PC's for the night, they have to reboot into Windows for 
something, ...

So I added a bit to my groups build script that queries my web server and 
asks who is in the farm currently.

On the web server side this is a ruby CGI script with a list of machines 
on which I have installed distcc.

On invocation it checks to see if it's cache is fresh, if so, it returns a 
list of IP addresses that are in the farm.

If the cache is older than say 5 minutes, it opens a TCPSocket to port 
3632 (distcc) on every machine it it's list. If it succeeds, it 
immediately closes it and decides that machine is in the farm.

To speed this up, I spawn a thread for every IP address so all this 
happens in parallel. It takes about 3 seconds for 14 machines. (Timeouts 
to dead machines are the limiting factor)

All this works well....

Until someone switches off his machine in the middle of someones elses 
compile.

Then distcc-2.18.3 spews these error messages...


distcc[32359] (dcc_writex) ERROR: failed to write: No route to host
distcc[32359] (dcc_writex) ERROR: failed to write: Broken pipe
distcc[32359] (dcc_readx) ERROR: unexpected eof on fd148
distcc[32359] (dcc_r_token_int) ERROR: read failed while waiting for token 
"DONE"
distcc[32359] Warning: failed to distribute 
/home/johnc/.ccache/cpcvnw_Ini.tmp.parore.32340.i to 172.25.143.11,lzo, 
running locally instead


It looks like from the last line that it handles the case correctly in any 
case, ie. Drops  172.25.143.11 out of the farm and compiles that 
particular instance "by hand" on the local machine.

The problem is it jabbers too much to stderr about it so the pretty 
paranoid build script concludes it failed.

Is there anyway of just getting distcc to just quietly drop that IP out of 
the farm and carry on without saying anything?







John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter at tait.co.nz
New Zealand

Carter's Clarification of Murphy's Law.

"Things only ever go right so that they may go more spectacularly wrong later."

>From this principle, all of life and physics may be deduced.


More information about the distcc mailing list