[distcc] distcc and ccache problems

Martin Pool mbp at sourcefrog.net
Mon Aug 12 01:25:01 GMT 2002

On 12 Aug 2002, Marcus Gruendler <Marcus.Gruendler at aixigo.de> wrote:

> 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

Very interesting!  Thankyou for reporting this so clearly.  You are
probably right that sendfile() is not sending all the data.

Can you tell me what filesystem is used on /tmp and on your working

In the meantime you could try editing config.h to remove
HAVE_SENDFILE, do "make clean" and recompile.  That might get it
working for now.

> 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


More information about the distcc mailing list