On Nov 21, 2012, at 11:40 , intrigeri <intrig...@debian.org> wrote:

> Kenyon Ralph wrote (23 Jun 2012 20:17:28 GMT) :
>>> When you specify a target via hostname which has both a v6 and v4
>>> address munin tries to connect to the v6 address first and if this
>>> fails bails out completely. This skips data collection for this
>>> host, resulting in lost data points.
> 
> Net::Server changed quite a lot in Debian since you first reported
> this bug; e.g. it now ships with the new upstream IPv6 support,
> instead of our old buggy Debian-specific IPv6 patch.
> 
> So, can you please try to reproduce this issue on current Debian
> testing/sid?


Just verified with munin 2.0.6-1 on wheezy, still broken:

http://nopaste.narf.at/show/TANDm4LYv2byzg53eFfg/

The error actually is not in the Net::Server package but in the use of 
IO::Socket::INET6.

/usr/share/perl5/Munin/Master/Node.pm:84

    if ($uri->scheme eq "munin") {
        $self->{reader} = $self->{writer} = IO::Socket::INET6->new(
                PeerAddr  => $uri->host,
                PeerPort  => $self->{port} || 4949,
                LocalAddr => $config->{local_address},
                Proto     => 'tcp',
                Timeout   => $config->{timeout}

The lack of the "MulitHomed" parameter causes IO::Socket::INET6 to give 
preferential treatment to AAAA-addresses and fail if they don't yield a socket 
- when enabling MultiHomed IO::Socket::INET6 will try all returned addresses. 
See 
http://search.cpan.org/~shlomif/IO-Socket-INET6-2.69/lib/IO/Socket/INET6.pm#CONSTRUCTOR
 for detailed information.

Just hacked MultiHomed in myself, this works fine when having dual stack 
munin-nodes only listening on v4 addresses.

all the best,
Michael

Reply via email to