[ntp:questions] ntpd deletes IPv6 interface after startup

Frank Kardel kardel at ntp.org
Sun Nov 11 15:38:20 UTC 2007


Hauke,

your observation seem correct. I have no idea why the ifiter code
skips IPv6 interfaces on the second round. There seems to be a bug
there. ifiter must return the complete currently valid interface list or
the interface scanning code will not work correctly.
Have you checked via ifconfig -a that the interface are still listed
when ifiter fails to enumerate them  ?

Please file a bug at http://bugs.ntp.org. Be sure to include detailed
information about your operating system.

Hauke Lampe wrote:
> Hello.
> 
> After updating from 4.2.0a to 4.2.4p4, I experience some problems getting 
> the IPv6 interface to work again. It did work with 4.2.0a.
4.2.0a only did the first scan - - no surprise that it worked there.

> 
> ntpd initializes the interface at startup and then deletes it immediately 
> afterwards. I tracked the problem down to update_interfaces() in ntp_io.c 
> where the interfaceiter in phase I skips the 6-to-4 interface (and others) 
> the second and further times the function is called. Thus the interface 
> structure's phase field is not updated and phase II marks the interface as 
> "GONE" and deletes it.
Correct analysis.
> 
> I haven't found out why the iterator skips the interfaces, yet. Doesn't it 
> always use the same set of interfaces returned by getifaddrs()?
It should - maybe its a porting issue or some other problem in the 
ifiter/getifaddrs area.

> 
> I saved debug output from the first and second call to update_interfaces() 
> here:
> 
> http://tinyurl.com/2khp5k
> 
> As a workaround, I disabled interface updates (-U 0) and now ntpd keeps 
> listening on all interfaces.
Yes, it only does the first and sucessful scan.
> 
> 
> 
> Hauke.

Frank




More information about the questions mailing list