alarmz / distcc

Automatically exported from code.google.com/p/distcc
GNU General Public License v2.0
0 stars 0 forks source link

"Socket operation on non-socket" failure #72

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Trying to set-up Distcc collaboration (over ssh to an unprivileged account) to 
rebuild my complete Gentoo Linux ; without Pump, for the moment.

distcc 3.1 i686-pc-linux-gnu (protocols 1, 2, and 3) (defaultport 3632) (Gentoo 
Linux Portage pkg sys-devel/distcc-3.1-r4)
Linux possum 2.6.29-gentoo-r5 i686 AMD Athlon 
gcc (Gentoo 4.4.3-r2 p1.2) 4.4.3

distccd 3.1 x86_64-pc-linux-gnu (protocols 1, 2 and 3) (default port 3632) 
(Ubuntu Debian pkg distcc-3.1-2)
Linux hermes 2.6.32-24 Ubuntu SMP x86_64 (Ubuntu 10.04.1 LTS)
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Distccd not running, i am counting on the ssh transaction to launch it.

I get :
"ERROR: compile makepath.c on @hermes,lzo failed"
"Warning: failed to distribute makepath.c to @hermes,lzo, running locally 
instead"

Notes:
* I am using an alternate to Gentoo's Portage pkg manager named Paludis, hence 
the "/var/tmp/paludis" mentions below. Paludis is configured to invoke Distcc.
* The helper is a kvm-qemu virtual machine to which i am able to connect via 
ssh, therefore i assume that the communication channels are OK.
* The two architectures are different : client is 32-bit, helper is 64-bit.

Samples of output in attached files.

...so i try this "ssh <helper> distcc --inetd", where i get one blank line of 
output.
On the other side, the log reports this :

distccd[4833]: (dcc_inetd_server) failed to get peer name: Socket operation on 
non-socket
distccd[4833]: (tcp_cork_sock) Warning: setsockopt(corked=1) failed: Socket 
operation on non-socket

I submit a ^C on client machine, the helper's log resumes with :

distccd[4833]: (dcc_readx) ERROR: unexpected eof on fd0
distccd[4833]: (dcc_r_token_int) ERROR: read failed while waiting for token 
"DIST"
distccd[4833]: (dcc_r_request_header) ERROR: client did not provide distcc 
magic fairy dust
distccd[4833]: (dcc_job_summary) client: NOTSOCKET OTHER exit:0 sig:0 core:0 
ret:108 time:274818ms

I wonder why Distcc invokes the remote Distccd with the --inetd option : this 
is my primary suspect.

Original issue reported on code.google.com by jerome.p...@gmail.com on 16 Oct 2010 at 8:52

Attachments:

GoogleCodeExporter commented 9 years ago
Keeping searching at it, it looks like it's a problem of cross-compiling, in 
which case this report is irrelevant here. I read in the disctcc man page that 
an exit code other than from 100 to 127 is not a distcc error. In my case i get 
a 1 on the helper side, and nothing on the client side, whereras i understand 
that i should be getting a 128 + 1 = 129.

I added the "-pass-exit-codes" gcc option to the Make options, but i am still 
getting a code of 1, where i thought i might perhaps get a 4, translating to 
132. But i get no exit code reported on the client machine at all, unlike in an 
earlier attempt where i would get a 110, which i resolved by setting CC to 
"gcc" from the client machine. And now with the "-pass-exit-codes" gcc option, 
the distcc messages are different, i get dcc_check_backoff and 
dcc_remove_disliked of the helper machine.

I'll keep searching on this cross-compiling business and hopefully will figure 
it out properly. Sorry for the disturbance ; but i'll keep an eye on the fate 
of this report.

Original comment by jerome.p...@gmail.com on 16 Oct 2010 at 9:53