Project

General

Profile

Actions

Bug #5711

closed

dpinger fails to start on IPv6 IPs considered "tentative", often breaking IPv6 gateway monitoring

Added by Renato Botelho almost 9 years ago. Updated almost 9 years ago.

Status:
Resolved
Priority:
High
Category:
Gateway Monitoring
Target version:
Start date:
12/29/2015
Due date:
% Done:

100%

Estimated time:
Plus Target Version:
Release Notes:
Affected Version:
2.3
Affected Architecture:

Description

For some period of time during boot, IPv6 IPs are considered "tentative" by the OS. For instance, ifconfig output like the following two examples (one static WAN, one gif tunnel).

inet6 2610:160:11:ffff::11 prefixlen 64 tentative
inet6 2001:470:ffff:71::2 --> 2001:470:ffff:71::1 prefixlen 128 tentative

When dpinger starts with ifconfig showing that state (which is every boot in many IPv6 configurations), it immediately exits with no logging. Launching it with truss in gwlb.inc shows the following output.

bind(3,{ AF_INET6 [2001:470:1f0e:71::2]:0 },28) ERR#49 'Can't assign requested address'
writev(0x2,0x7fffffffe0c0,0x4) = 37 (0x25)
write(2,"cannot bind send socket\n",24) = 24 (0x18)
process exit, rval = 1

This leaves no dpinger processes running for IPv6 WANs. Running setup_gateways_monitor() after boot starts all dpinger instances correctly, but that doesn't happen without user-intervention.

Aside from fixing the problem at hand here, this type of error condition should really make it to the logs rather than having to change it to launch under truss to figure out the problem.

Actions

Also available in: Atom PDF