[distcc] First remote execution works, second fails.

Martin Pool mbp at samba.org
Mon Apr 14 01:43:21 GMT 2003


Did you ever work out what was going wrong here?

It looks like the heart of the problem is the "permission denied"
message; somehow g++ has been pointed to (I would guess) a script
without the +x bit set.

On 30 Jan 2003, MAL <mal at komcept.com> wrote:
> Hi,
> 
> I'm using distcc with Gentoo to compile software via portage, on my aged 
> laptop, with help from my Athlon XP system.
> 
> The Athlon XP is called mal, the laptop is the machine that I run emerge on.
> 
> For those who haven't used Gentoo, Portage is basically a compilation 
> front end that sorts out dependencies, compiles, and performs virtual 
> installs, followed by merging an app into a running system... it's the 
> package manager for Gentoo.
> 
> Gentoo does some interesting things with the locations of gcc and g++, 
> in that it keeps the binaries in (on my pc):
> /usr/i586-pc-linux-gnu/gcc-bin/<gcc_version>/
> 
> and sets up the PATH environment variable to point to them. This is so 
> multiple compilers can be present without interfering with each other.
> 
> It's taken me a good few attempts to get it working to begin with, as 
> the environment wasn't staying the same while emerge ran, (the various 
> gentoo-distcc howtos online no longer work... I guess the changed in 
> gentoo's gcc layout).
> 
> Anwyay.. it appeared to work, but then I get this (see attachment). 
> groff failed on the second remote call to g++, (looks like the first 
> worked fine).
> 
> This is just a sample package, the same happens with others.
> 
> Note: my DISTCC_HOSTS only contains "mal", and not localhost.. do I 
> absolutely need localhost?  (the local machine is a 20th as fast as the 
> remote machine).
> 
> Sorry for the length, any ideas people? :)
> 

> make[1]: Entering directory `/var/tmp/portage/groff-1.18.1/work/groff-1.18.1'
> make[2]: Entering directory `/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include'
> make[2]: Leaving directory `/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include'
> make[2]: Entering directory `/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/libs/libgroff'
> distcc g++ -I. -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/libs/libgroff -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -DHAVE_CONFIG_H -march=pentium-mmx -O3 -fomit-frame-pointer -pipe  -c assert.cc
> distcc[6404] (dcc_scan_args) scanning arguments: g++ -I. -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/libs/libgroff -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -DHAVE_CONFIG_H -march=pentium-mmx -O3 -fomit-frame-pointer -pipe -c assert.cc
> distcc[6404] (dcc_scan_args) found input file "assert.cc"
> distcc[6404] (dcc_scan_args) no visible output file, going to add "-o assert.o" at end
> distcc[6404] compile from assert.cc to assert.o
> distcc[6404] (dcc_parse_hosts) found tcp token "mal"
> distcc[6404] (dcc_lock_host) locked /var/tmp/portage/groff-1.18.1/temp/distcc_00000000/lock_mal_0000000
> distcc[6404] (dcc_lock_one) compile on mal
> distcc[6404] (dcc_strip_dasho) result: g++ -I. -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/libs/libgroff -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -DHAVE_CONFIG_H -march=pentium-mmx -O3 -fomit-frame-pointer -pipe -c assert.cc
> distcc[6404] (dcc_spawn_child) forking to execute g++ -I. -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/libs/libgroff -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -I/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/include -DHAVE_CONFIG_H -march=pentium-mmx -O3 -fomit-frame-pointer -pipe -E assert.cc
> distcc[6404] (dcc_spawn_child) child started as pid6405
> distcc[6404] (dcc_strip_local_args) result: g++ -march=pentium-mmx -O3 -fomit-frame-pointer -pipe -c assert.cc -o assert.o
> distcc[6404] exec on mal: g++ -march=pentium-mmx -O3 -fomit-frame-pointer -pipe -c assert.cc -o assert.o
> distcc[6404] (dcc_open_socket_out) client got connection to mal port 3632 on fd4
> distcc[6404] (dcc_x_token_int) send DIST00000001
> distcc[6404] (dcc_x_token_int) send ARGC00000009
> distcc[6404] (dcc_x_token_int) send ARGV00000003
> distcc[6404] (dcc_x_token_int) send ARGV00000012
> distcc[6404] (dcc_x_token_int) send ARGV00000003
> distcc[6404] (dcc_x_token_int) send ARGV00000014
> distcc[6404] (dcc_x_token_int) send ARGV00000005
> distcc[6404] (dcc_x_token_int) send ARGV00000002
> distcc[6404] (dcc_x_token_int) send ARGV00000009
> distcc[6404] (dcc_x_token_int) send ARGV00000002
> distcc[6404] (dcc_x_token_int) send ARGV00000008
> distcc[6404] (dcc_collect_child) child 6405 terminated with status 0
> distcc[6404] (dcc_report_rusage) cpp resource usage: 0.390000s user, 0.050000s system
> distcc[6404] cpp on mal9.mal.gotdns.org completed ok
> distcc[6404] (dcc_x_file) send 47567 byte file /var/tmp/portage/groff-1.18.1/temp/distcc_00000000/cppout_0000006404.i with token DOTI
> distcc[6404] (dcc_x_token_int) send DOTI0000b9cf
> distcc[6404] (dcc_send_job) client finished sending request to server
> distcc[6404] (dcc_r_token_int) got DONE00000001
> distcc[6404] (dcc_r_result_header) got response header
> distcc[6404] (dcc_r_token_int) got STAT00006e00
> distcc[6404] (dcc_r_token_int) got SERR00000048
> distccd[3098] (dcc_execvp) ERROR: failed to exec g++: Permission denied
> distcc[6404] (dcc_r_token_int) got SOUT00000000
> distcc[6404] (dcc_r_token_int) got DOTO00000000
> distcc[6404] (dcc_retrieve_results) Notice: skipping retrieval of 0 byte object file assert.o
> distcc[6404] (dcc_critique_status) Notice: g++ on mal failed with exit code 110
> distcc[6404] (dcc_exit) Notice: exit: code 110; self: 0.010000 user 0.020000 sys; children: 0.390000 user 0.050000 sys
> distcc[6404] (dcc_cleanup_tempfiles) deleted 1 temporary files
> make[2]: *** [assert.o] Error 110
> make[2]: Leaving directory `/var/tmp/portage/groff-1.18.1/work/groff-1.18.1/src/libs/libgroff'
> make[1]: *** [src/libs/libgroff] Error 2
> make[1]: Leaving directory `/var/tmp/portage/groff-1.18.1/work/groff-1.18.1'
> make: *** [all] Error 2
> __ 
> distcc mailing list            http://distcc.samba.org/
> To unsubscribe or change options: 
> http://lists.samba.org/cgi-bin/mailman/listinfo/distcc

-- 
Martin 


More information about the distcc mailing list