Git Product home page Git Product logo

Comments (15)

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
What is in your ~/.distcc/.hosts file?

If you have IPv6 addresses in your hosts file, then I think you need to put the 
IPv6 addresses inside 
square brackets.
If you have only +zeroconf in your hosts file, then I guess it is a bug in 
distcc; but the solution probably 
involves additional square brackets.

Original comment by [email protected] on 12 Mar 2009 at 11:13

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
The only thing in the hosts file is +zeroconf.

The first IPv6 address is incorrect :2c0:9fff:fe3d:1737:3632/16 (distcc 
--show-hosts)
should be fe80::2c0:9fff:fe3d:1737:3632/16 (from .distcc/zeroconf/hosts). The 
second
address is correct 2001:470:1f09:22e:214:22ff:fe2d:1d7f:3632/8(in both
.distcc/zeroconf/hosts and distcc --show-hosts).

I am not convinced about square brackets when the first address is clearly 
wrong,
however this may be required as well.

Original comment by [email protected] on 14 Mar 2009 at 9:47

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
You are right that the hosts file requires square brackets around the IPV6 
address.
Just had a look in the source.

static int dcc_parse_tcp_host(struct dcc_hostdef *hostdef,
                              const char * const token_start)
{
    int ret;
    const char *token = token_start;

    if (token[0] == '[') {
    /* We have an IPv6 Address */
    if ((ret = dcc_dup_part(&token, &hostdef->hostname, "/] \t\n\r\f,")))
        return ret;
    if(token[0] != ']') {
        rs_log_error("IPv6 Hostname requires closing ']'");
        return EXIT_BAD_HOSTSPEC;
    }
    token++;


It must be the that ZEROCONF code that generates the hosts file in the first 
place
generates in incorrect IPV6 address. I'm going to poke around and see if I can 
find
something obvious.

Original comment by [email protected] on 8 Oct 2009 at 12:31

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
Just keeping notes here. On Ubuntu 9.04 by default the avahi zeroconf daemon is 
not
IPV6 enabled. See

/etc/avahi/avahi-daemon.conf

[server]
#host-name=foo
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=no
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no

My guess at the moment is that for some-reason distccd is broadcast that it is 
on
interface eth0 IPv4 but then puts in an IPV6 address into the Address field of 
the
zeroconf record. 

looking at line 165 of zeroconf.c in the distcc pacakge I see.

    if (h->address.proto == AVAHI_PROTO_INET6)
        snprintf(t, sizeof(t), "[%s]:%u/%i\n", avahi_address_snprint(a, sizeof(a),
&h->address), h->port, d->n_slots * h->n_cpus);
    else
        snprintf(t, sizeof(t), "%s:%u/%i\n", avahi_address_snprint(a, sizeof(a),
&h->address), h->port, d->n_slots * h->n_cpus);

if AVAHI_PROTO_INET6 is set then square brackets are used. If otherwise it 
prints
without square brackets. Given that IPV6 in avahi is disabled I don't think we 
will
see AVAHI_PROTO_INET6 and therefore there will be no square brackets. 

Next thing to look at is the distccd code that broadcasts the record. Maybe the
answer is there.

Original comment by [email protected] on 8 Oct 2009 at 1:28

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
Proof positive something dodgy is going on with the daemon and address 
publishing....

brad@bradgonesurfing:~/build/distcc/trunk$sudo /etc/init.d/distcc restart &&
avahi-browse _distcc._tcp -rtkv

 * Restarting Distributed Compiler Daemon: distccd                                  

                          [ OK ] 
Server version: avahi 0.6.23; Host name: bradgonesurfing.local
E Ifce Prot Name                                          Type                 
Domain
+ eth0 IPv4 distcc@dachstein                              _distcc._tcp         
local
= eth0 IPv4 distcc@dachstein                              _distcc._tcp         
local
   hostname = [dachstein.local]
   address = [fe80::219:d1ff:feb0:2f65]
   port = [3632]
   txt = ["cc_machine=i486-linux-gnu" "cc_version=4.3.3" "gnuhost=i486-pc-linux-gnu"
"distcc=3.1" "cpus=2" "txtvers=1"]
: Cache exhausted
+ eth0 IPv4 distcc@bradgonesurfing                        _distcc._tcp         
local
= eth0 IPv4 distcc@bradgonesurfing                        _distcc._tcp         
local
   hostname = [bradgonesurfing.local]
   address = [192.168.1.4]
   port = [3632]
   txt = ["cc_machine=i486-linux-gnu" "cc_version=4.3.3" "gnuhost=i486-pc-linux-gnu"
"distcc=3.1" "cpus=2" "txtvers=1"]
: All for now


Note how avahi marks it as IPV4 eth0 but puts in an IPV6 address into the 
address
field. Why is that happening? 

line 84 in zeroconf-reg.c has a call to 

        if (avahi_entry_group_add_service(
                    ctx->group,
                    AVAHI_IF_UNSPEC,
                    dcc_proto,
                    0,
                    ctx->name,
                    DCC_DNS_SERVICE_TYPE,
                    NULL,
                    NULL,
                    ctx->port,
                    "txtvers=1",
                    cpus,
                    "distcc="PACKAGE_VERSION,
                    "gnuhost="GNU_HOST,
                    v ? version : NULL,
                    m ? machine : NULL,
                    NULL) < 0) {

However the address in not specified. This seems to be a job for avahi to fill 
in. Is
this a bug with avahi or is the above function being called with incorrect 
parameters.

BTW My distcc version is

brad@bradgonesurfing:~/workspace/server$distccd --version
distccd 3.1 i486-pc-linux-gnu
  (protocols 1, 2 and 3) (default port 3632)
  built Oct  4 2009 16:29:06
Copyright (C) 2002, 2003, 2004 by Martin Pool.
Includes miniLZO (C) 1996-2002 by Markus Franz Xaver Johannes Oberhumer.
Portions Copyright (C) 2007-2008 Google.

distcc comes with ABSOLUTELY NO WARRANTY.  distcc is free software, and
you may use, modify and redistribute it under the terms of the GNU 
General Public License version 2 or later.

Built with Zeroconf support.

Please report bugs to [email protected]

I think I am lost at this point. Hopefully the information I've been able to 
dig up
is usefull to somebody in tracking this problem down.

Original comment by [email protected] on 8 Oct 2009 at 2:11

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
There was a previous issue related to IPV6 which was fixed. I link it here just 
for
cross reference.

http://code.google.com/p/distcc/issues/detail?id=34

And the ifconfig for the machine broadcasting the IPV6 address is

Last login: Thu Oct  8 16:25:58 2009 from bradgonesurfing.local
brad@dachstein:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:19:d1:b0:2f:65  
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::219:d1ff:feb0:2f65/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1150788 errors:0 dropped:15 overruns:0 frame:0
          TX packets:969064 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:1398858971 (1.3 GB)  TX bytes:688116937 (688.1 MB)
          Memory:d2200000-d2220000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:240 (240.0 B)  TX bytes:240 (240.0 B)

Original comment by [email protected] on 8 Oct 2009 at 2:44

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
This thread might throw some light but to be honest it is a bit over my head. 
There
seems to be a problem with IPV6 link local addresses and AVAHI. The address 
above is
a link local one ie it starts with "fe80".

http://lists.freedesktop.org/archives/avahi/2007-February/000959.html

Original comment by [email protected] on 8 Oct 2009 at 2:56

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
My /etc/avahi/avahi-daemon.conf
contains

--SNIP--
[server]
#host-name=foo
#domain-name=local
browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=yes
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
--SNIP--

Original comment by [email protected] on 8 Oct 2009 at 3:11

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
Currently I'm going to try to disable IPV6 in Ubuntu 9.04 and see if the 
problem goes
away. This is how to do it.

http://ubuntuforums.org/showpost.php?p=7858319&postcount=38


Original comment by [email protected] on 8 Oct 2009 at 3:24

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
I have been trying to get all my networks IPv6 enabled not disabled, I need to 
run it
for test environments against software builds and was hoping to have avahi 
running
IPv6 but when I enable it it breaks by build farm :S

Original comment by [email protected] on 8 Oct 2009 at 3:47

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
Are there any changes in relation to this issue? Disabling ipv6 on each of the 
hosts
(as suggested in comment #9) helps a bit and lowers the amount of warnings 
during
compilation but doesn't fix them completely.

Moreover it is not a good solution as one might have quite a lot of hosts and
disabling ipv6 on each of them can be quite annoying.

Is there anything I can do to help fix this issue?

Original comment by madkinder on 24 Jan 2010 at 9:25

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
There are two issues as I see it, the first is that Avahi is placing IPv6 
addresses
in IPv4 fields, the other is why distcc gets all of the following IPv6 address
correct but gets the first one wrong, for some reason it is striping the first 
for
digits before the colon, why is it not the same for all address and that they 
are all
broken?

Original comment by [email protected] on 24 Jan 2010 at 9:58

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
The solutions presented in Issue 34 resolve the IPv6 errors for me. The patches 
were 
committed to trunk in revisions 650 and 673. I built and tested revision 717 on 
Ubuntu 9.04 (with IPv6 enabled) in our IPv4 networked environment, and the 
errors 
went away. Previously, we were rendering our own workstations unusable with 
-j80 
compiles when the error was encountered.

As of today, the latest distcc release (version 3.1) does not include these 
changes. 
Oh, I had to run 'sh configure --disable-Werror' in order to build revision 717 
successfully in my environment.

Original comment by [email protected] on 15 Apr 2010 at 9:36

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
As Comment 13 points out, this bug was fixed back in Issue 34, but for some 
reason got left out of the 3.1 release. Perhaps someone did a poor job merging 
branches at some point and accidentally wiped out the fix?

In any case, since this issue is not getting any response here, I have 
submitted the patch that fixes this to Ubuntu. It is now available in oneiric:

https://bugs.launchpad.net/ubuntu/+source/distcc/+bug/809534/comments/3

Original comment by [email protected] on 17 Jul 2011 at 4:48

from distcc.

GoogleCodeExporter avatar GoogleCodeExporter commented on July 21, 2024
The bug was fixed *after* the release of distcc 3.1.
The lack of a time machine prevented the fix from being included in the distcc 
3.1 release :)
The bug is fixed at head and will be included in the next release of distcc.
The real problem here is that it's been a long time since the last release.
Must be time to do a new release soon...

Original comment by [email protected] on 28 Jul 2011 at 10:09

  • Changed state: Fixed

from distcc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.