[distcc] distcc and ccache problems

Marcus Gruendler Marcus.Gruendler at aixigo.de
Mon Aug 12 01:13:00 GMT 2002


I have a problem using distcc in combination with ccache. I seems as if the 
problems are similar to the ones using distcc with tmpfs, but I don't use 
tmpfs at all. Whenever I call

ccache distcc gcc <options>

I get the following error message (with DISTCC_VERBOSE=1):

distcc[2012] (dcc_try_lock_host) /tmp/distcc_888/lock_localhost_0000000 
already locked
distcc[2012] (dcc_try_lock_host) locked /tmp/distcc_888/lock_machine1_0000000
distcc[2012] (dcc_pick_buildhost) building on machine1
distcc[2012] exec on machine1: gcc -c -Wall -g -fPIC -ftemplate-depth-27 -o 
/tmp/ccache/tmp.hash.1985.o /tmp/ccache/tmp.stdout.1985.ii
distcc[2012] (dcc_open_socket_out) client got connection to machine1 port 4200 
on fd7
distcc[2012] (dcc_x_file) send 1408245 byte file 
/tmp/ccache/tmp.stdout.1985.ii with token DOTI
distcc[2012] ERROR: (dcc_pump_sendfile) sendfile failed: Success
distcc[2012] (dcc_exit) exit: code -1; self: 0.000000 user 0.000000 sys; 
children: 0.000000 user 0.000000 sys
make: *** [build/single/debug/processor.o] Error 1

When I use distcc alone, everything works perfectly. Also if I use ccache on 
its own, everything works nice. Does anybody know what the problem is?

One thing I find especially interesting is the second last line of the distcc 
output "sendfile failed: Success". I had a look into src/io.c and realised 
that this is caused by method sys_sendfile() when the returned amount of 
transmitted bytes does not correspondent with the size of the input. Since 
errno tells us that there is no problem I tried to ignore the error but it 
didn't help.

I am using SuSE Linux 7.0, Linux 2.2.16 and gcc 2.95.2

Dipl. Inform. Marcus Gründler

aixigo AG - financial training, research and technology
Schloß-Rahe-Straße 15, 52072 Aachen, Germany
fon: +49 (0)241 936737-26, fax: +49 (0)241 936737-99
eMail: Marcus.Gruendler at aixigo.de, web: http://www.aixigo.de

More information about the distcc mailing list