[distcc] Protocol error?

Emre Can Sezer ecsezer at ncsu.edu
Tue Jul 22 20:32:00 GMT 2008


I compiled distcc using the -m32 flag as follows:

ecsezer at xensezer:~/distcc-3.0rc2$ make clean
ecsezer at xensezer:~/distcc-3.0rc2$ CC="gcc -m32" ./configure

I don't know much about cross compiling, so I checked the output which
seems to have compiled for 32-bits.

ecsezer at xensezer:~/distcc-3.0rc2$ readelf -h distcc
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x8049c60
  Start of program headers:          52 (bytes into file)
  Start of section headers:          285204 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         7
  Size of section headers:           40 (bytes)
  Number of section headers:         38
  Section header string table index: 35


I did not perform any changes on the server machines since I thought I
would be able to see if server was sending DISTfffffff or not.
Unfortunately, it still is.  So the problem persists.

Please let me know if there is anything else you'd like me to try.

JohnS

> Just from a quick glance, this looks like it might be a 64-bit porting
issue.
> So a likely work-around is to build with a 32-bit compiler (e.g. set
CC=i486-linux-gnu-gcc before running configure).
>
> But I will take a more detailed look...
>
> On Tue, Jul 22, 2008 at 3:01 PM, Emre Can Sezer <ecsezer at ncsu.edu> wrote:
>
>> I've installed distcc on two computers and I'm trying to build the
linux kernel.  I'm having difficulty with getting distcc to work.  I
get the following error on the server side (distccd) when run with
verbose:
>>
>> distccd[12535] (main) chdir to /tmp
>> distccd[12535] (dcc_setup_daemon_path) daemon's PATH is
>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
distccd[12535] (dcc_listen_by_addr) ERROR: bind of 152.14.92.46:3632
failed: Address already in use
>> distccd[12535] (dcc_exit) exit: code 102; self: 0.000000 user 0.000000
sys; children: 0.000000 user 0.000000 sys
>> distccd[12540] (main) chdir to /tmp
>> distccd[12540] (dcc_setup_daemon_path) daemon's PATH is
>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
distccd[12540] (dcc_listen_by_addr) listening on 152.14.92.46:3632
distccd[12540] (dcc_defer_accept) TCP_DEFER_ACCEPT turned on
>> distccd[12540] (dcc_standalone_server) 2 CPUs online on this server
distccd[12540] (dcc_standalone_server) allowing up to 4 active jobs
distccd[12540] (dcc_ignore_sighup) ignoring SIGHUP
>> distccd[12541] (dcc_detach) setsid to session 12541
>> distccd[12541] (dcc_log_daemon_started) preforking daemon started (3.0rc2
>> i686-pc-linux-gnu, built Jul 22 2008 13:30:26)
>> distccd[12541] (dcc_create_kids) up to 1 children
>> distccd[12541] (dcc_create_kids) up to 2 children
>> distccd[12541] (dcc_create_kids) up to 3 children
>> distccd[12541] (dcc_create_kids) up to 4 children
>> distccd[12542] (dcc_check_client) connection from 152.14.92.51:47447
distccd[12542] (dcc_check_address) deny client 0x335c0e98, value
0x100007f, mask 0xffffffff
>> distccd[12542] (dcc_check_address) match client 0x335c0e98, value
0x5c0e98, mask 0xffffff
>> distccd[12542] (dcc_r_token_int) got DISTffffffff
>> distccd[12542] (dcc_r_request_header) ERROR: can't handle requested
protocol version is -1
>> distccd[12542] (dcc_cleanup_tempfiles_inner) deleted 3 temporary files
distccd[12542] (dcc_job_summary) client: 152.14.92.51:47447 REJ_BAD_REQ
exit:0 sig:0 core:0 ret:109 time:0ms
>>
>>
>>
>>
>> So the protocol token I'm passing is fffffffff.  I confirmed this on
the client side as well (running distcc in case I'm using the wrong
terms).
>>
>>
>>
>> ...
>> distcc[9560] (dcc_unlock) release lock fd5
>> distcc[9560] exec on haemosu,cpp: /usr/bin/gcc -MD -MF
init/.version.o.d -nostdinc -isystem
/usr/lib/gcc/x86_64-linux-gnu/4.2.3/include
>> -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef
-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-Werror-implicit-function-declaration -O2 -fno-stack-protector -m64
-mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time
>> -maccumulate-outgoing-args -pipe -Wno-sign-compare
>> -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
-Iinclude/asm-x86/mach-default -fomit-frame-pointer -g
>> -Wdeclaration-after-statement -Wno-pointer-sign -DKBUILD_STR(s)=#s
-DKBUILD_BASENAME=KBUILD_STR(version)
>> -DKBUILD_MODNAME=KBUILD_STR(version)
>> -c -o init/.tmp_version.o init/version.c -MT init/.tmp_version.o
distcc[9560] (dcc_note_state) note state 2, file "version.c", host
"haemosu"
>> distcc[9560] (dcc_connect_by_addr) started connecting to
>> 152.14.92.46:3632
>> distcc[9560] (dcc_select_for_write) select for write on fd5
>> distcc[9560] (dcc_note_state) note state 4, file "(NULL)", host
"(NULL)" distcc[9560] (dcc_x_token_int) send DISTffffffff
>> distcc[9560] (dcc_x_token_int) send CDIR00000022
>> distcc[9560] (dcc_x_token_string) send string
>> '/home/ecsezer/kernels/linux-2.6.26'
>> distcc[9560] (dcc_x_token_int) send ARGC0000002f
>> distcc[9560] (dcc_x_token_int) send ARGV0000000c
>> distcc[9560] (dcc_x_token_string) send string '/usr/bin/gcc'
>> distcc[9560] (dcc_x_token_int) send ARGV00000003
>> distcc[9560] (dcc_x_token_string) send string '-MD'
>> distcc[9560] (dcc_x_token_int) send ARGV00000003
>> distcc[9560] (dcc_x_token_string) send string '-MF'
>> distcc[9560] (dcc_x_token_int) send ARGV00000011
>> distcc[9560] (dcc_x_token_string) send string 'init/.version.o.d'
distcc[9560] (dcc_x_token_int) send ARGV00000009
>> distcc[9560] (dcc_x_token_string) send string '-nostdinc'
>> distcc[9560] (dcc_x_token_int) send ARGV00000008
>> distcc[9560] (dcc_x_token_string) send string '-isystem'
>> distcc[9560] (dcc_x_token_int) send ARGV0000002b
>> distcc[9560] (dcc_x_token_string) send string
>> '/usr/lib/gcc/x86_64-linux-gnu/4.2.3/include'
>> distcc[9560] (dcc_x_token_int) send ARGV0000000c
>> distcc[9560] (dcc_x_token_string) send string '-D__KERNEL__'
>> distcc[9560] (dcc_x_token_int) send ARGV00000009
>> distcc[9560] (dcc_x_token_string) send string '-Iinclude'
>> distcc[9560] (dcc_x_token_int) send ARGV00000008
>> distcc[9560] (dcc_x_token_string) send string '-include'
>> distcc[9560] (dcc_x_token_int) send ARGV00000018
>> distcc[9560] (dcc_x_token_string) send string
'include/linux/autoconf.h' distcc[9560] (dcc_x_token_int) send
ARGV00000005
>> distcc[9560] (dcc_x_token_string) send string '-Wall'
>> distcc[9560] (dcc_x_token_int) send ARGV00000007
>> distcc[9560] (dcc_x_token_string) send string '-Wundef'
>> distcc[9560] (dcc_x_token_int) send ARGV00000013
>> distcc[9560] (dcc_x_token_string) send string '-Wstrict-prototypes'
distcc[9560] (dcc_x_token_int) send ARGV0000000e
>> distcc[9560] (dcc_x_token_string) send string '-Wno-trigraphs'
>> distcc[9560] (dcc_x_token_int) send ARGV00000014
>> distcc[9560] (dcc_x_token_string) send string '-fno-strict-aliasing'
distcc[9560] (dcc_x_token_int) send ARGV0000000b
>> distcc[9560] (dcc_x_token_string) send string '-fno-common'
>> distcc[9560] (dcc_x_token_int) send ARGV00000025
>> distcc[9560] (dcc_x_token_string) send string
>> '-Werror-implicit-function-declaration'
>> distcc[9560] (dcc_x_token_int) send ARGV00000003
>> distcc[9560] (dcc_x_token_string) send string '-O2'
>> distcc[9560] (dcc_x_token_int) send ARGV00000014
>> distcc[9560] (dcc_x_token_string) send string '-fno-stack-protector'
distcc[9560] (dcc_x_token_int) send ARGV00000004
>> distcc[9560] (dcc_x_token_string) send string '-m64'
>> distcc[9560] (dcc_x_token_int) send ARGV0000000e
>> distcc[9560] (dcc_x_token_string) send string '-mtune=generic'
>> distcc[9560] (dcc_x_token_int) send ARGV0000000d
>> distcc[9560] (dcc_x_token_string) send string '-mno-red-zone'
>> distcc[9560] (dcc_x_token_int) send ARGV0000000f
>> distcc[9560] (dcc_x_token_string) send string '-mcmodel=kernel'
distcc[9560] (dcc_x_token_int) send ARGV00000010
>> distcc[9560] (dcc_x_token_string) send string '-funit-at-a-time'
distcc[9560] (dcc_x_token_int) send ARGV0000001a
>> distcc[9560] (dcc_x_token_string) send string
>> '-maccumulate-outgoing-args'
>> distcc[9560] (dcc_x_token_int) send ARGV00000005
>> distcc[9560] (dcc_x_token_string) send string '-pipe'
>> distcc[9560] (dcc_x_token_int) send ARGV00000011
>> distcc[9560] (dcc_x_token_string) send string '-Wno-sign-compare'
distcc[9560] (dcc_x_token_int) send ARGV0000001f
>> distcc[9560] (dcc_x_token_string) send string
>> '-fno-asynchronous-unwind-tables'
>> distcc[9560] (dcc_x_token_int) send ARGV00000008
>> distcc[9560] (dcc_x_token_string) send string '-mno-sse'
>> distcc[9560] (dcc_x_token_int) send ARGV00000008
>> distcc[9560] (dcc_x_token_string) send string '-mno-mmx'
>> distcc[9560] (dcc_x_token_int) send ARGV00000009
>> distcc[9560] (dcc_x_token_string) send string '-mno-sse2'
>> distcc[9560] (dcc_x_token_int) send ARGV0000000a
>> distcc[9560] (dcc_x_token_string) send string '-mno-3dnow'
>> distcc[9560] (dcc_x_token_int) send ARGV0000001e
>> distcc[9560] (dcc_x_token_string) send string
>> '-Iinclude/asm-x86/mach-default'
>> distcc[9560] (dcc_x_token_int) send ARGV00000014
>> distcc[9560] (dcc_x_token_string) send string '-fomit-frame-pointer'
distcc[9560] (dcc_x_token_int) send ARGV00000002
>> distcc[9560] (dcc_x_token_string) send string '-g'
>> distcc[9560] (dcc_x_token_int) send ARGV0000001d
>> distcc[9560] (dcc_x_token_string) send string
>> '-Wdeclaration-after-statement'
>> distcc[9560] (dcc_x_token_int) send ARGV00000011
>> distcc[9560] (dcc_x_token_string) send string '-Wno-pointer-sign'
distcc[9560] (dcc_x_token_int) send ARGV00000012
>> distcc[9560] (dcc_x_token_string) send string '-DKBUILD_STR(s)=#s'
distcc[9560] (dcc_x_token_int) send ARGV00000025
>> distcc[9560] (dcc_x_token_string) send string
>> '-DKBUILD_BASENAME=KBUILD_STR(version)'
>> distcc[9560] (dcc_x_token_int) send ARGV00000024
>> distcc[9560] (dcc_x_token_string) send string
>> '-DKBUILD_MODNAME=KBUILD_STR(version)'
>> distcc[9560] (dcc_x_token_int) send ARGV00000002
>> distcc[9560] (dcc_x_token_string) send string '-c'
>> distcc[9560] (dcc_x_token_int) send ARGV00000002
>> distcc[9560] (dcc_x_token_string) send string '-o'
>> distcc[9560] (dcc_x_token_int) send ARGV00000013
>> distcc[9560] (dcc_x_token_string) send string 'init/.tmp_version.o'
distcc[9560] (dcc_x_token_int) send ARGV0000000e
>> distcc[9560] (dcc_x_token_string) send string 'init/version.c'
>> distcc[9560] (dcc_x_token_int) send ARGV00000003
>> distcc[9560] (dcc_x_token_string) send string '-MT'
>> distcc[9560] (dcc_x_token_int) send ARGV00000013
>> distcc[9560] (dcc_x_token_string) send string 'init/.tmp_version.o'
distcc[9560] (dcc_x_token_int) send NFIL0000010e
>> distcc[9560] (dcc_x_token_int) send NAME0000003b
>> distcc[9560] (dcc_x_token_string) send string
>> '/home/ecsezer/kernels/linux-2.6.26/include/linux/autoconf.h'
>> distcc[9560] (dcc_x_file) send 27349 byte file
>>
>> /dev/shm/tmp3AYAwj.include_server-6245-1/home/ecsezer/kernels/linux-2.6.26/include/linux/autoconf.h.lzo
with token FILE and compression 69
>> distcc[9560] (dcc_x_token_int) send FILE00006ad5
>> distcc[9560] (dcc_pump_sendfile) sendfile: partial transmission of
10147 bytes; retrying 17202 @10147
>> distcc[9560] (dcc_select_for_write) select for write on fd5
>> distcc[9560] (dcc_pump_sendfile) select() returned, continuing to write
distcc[9560] (dcc_pump_sendfile) ERROR: sendfile failed: Connection
reset
>> by peer
>> distcc[9560] (dcc_x_token_int) send NAME00000036
>> distcc[9560] (dcc_writex) ERROR: failed to write: Broken pipe
>> distcc[9560] (dcc_mark_timefile) mark
>> /home/ecsezer/.distcc/lock/backoff_tcp_haemosu_3632_0
>> distcc[9560] (dcc_unlock) release lock fd4
>> distcc[9560] Warning: failed to distribute init/version.c to
>> haemosu,cpp,
>> running locally instead
>> ...
>>
>>
>>
>> I'm running Ubuntu8.04 on a x86-64.  I've tried both the release and
the svn repository versions.  I'd appreciate any help.
>>
>> Thanks,
>>
>> JohnS
>>
>>
>> __
>> distcc mailing list            http://distcc.samba.org/
>> To unsubscribe or change options:
>> https://lists.samba.org/mailman/listinfo/distcc
>>
>
>
>
> --
> Fergus Henderson <fergus at google.com>
>





More information about the distcc mailing list