[systemd-devel] simultaneous udp listeners for ipv4+6 caused systemd to go into a loop

Mirco Tischler mt-ml at gmx.de
Tue Dec 4 15:53:23 PST 2012


2012/12/5 Thomas H.P. Andersen <phomes at gmail.com>

> I was looking into why the unit files for talkd/ntalkd were not
> working [1]. For some reason specifying these two lines in the same
> socket file triggers an unfortunate behavior in systemd:
> ListenDatagram=[::]:517
> ListenDatagram=0.0.0.0:517
>
> Systemd first of all fails to start the service. It then tries
> starting it again and again repeatedly. This quickly reaches the limit
> for failing to start a service too often. It still just continues and
> it spams the journal about having hit this limit. It caused a
> noticeable slow down of the computer and my log file began rotating.
>
> I have not looked into what is going on in systemd, or whether this is
> a bug or not. However it is case where I think that it could be nice
> to provide a clear error message.
>
> Maybe someone can spread some light about what is going on here? A
> socket file with just one of the two ListenDatagram-lines works just
> fine.
>
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=737219


My guess is systemd gets confused because the two addresses overlap. By
default specifying an ipv6 address will make the service available on both
ipv6 and ipv4, so the second directive is redundant. This can be disabled
with BindIPv6Only=ipv6-only. But systemd could indeed behave nicer in this
situation :)

Mirco
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20121205/2b10dc06/attachment.html>


More information about the systemd-devel mailing list