** Also affects: systemd via https://github.com/systemd/systemd/issues/17577 Importance: Unknown Status: Unknown
** Description changed: + [impact] + + networking changes, like RA events, can cause systemd-resolved to re- + write the resolv.conf file, even if the contents didn't change, + resulting in unnecessary increased amount of inotify events + + [test case] + + see original description + + [regression potential] + + regressions would result in incorrect or missing data in the resolv.conf + file, possibly resulting in dns failures or errors + + [scope] + + TBD + + [original description] + # Issue description: On 2 Linode VMs that are used as lxd hosts, we noticed that /run/systemd/resolve/*resolv.conf were re-created quite frequently (~ once per second). We noticed because of the log noise from lxd's dnsmasq instance using inotify to watch the target of /etc/resolv.conf (which points to the stub-resolv.conf in our case). This was (wrongly) reported as a lxd bug (https://github.com/lxc/lxd/issues/7765) until it became apparent it was more likely to be a problem with systemd(-resolved)?. The log noise is the observable problem that would be nice to see addressed: - root@lxd02:~# uptime - 17:55:48 up 9:52, 1 user, load average: 0.18, 0.11, 0.05 - root@lxd02:~# journalctl -b0 | grep -cF dnsmasq - 158609 + root@lxd02:~# uptime + 17:55:48 up 9:52, 1 user, load average: 0.18, 0.11, 0.05 + root@lxd02:~# journalctl -b0 | grep -cF dnsmasq + 158609 Upon further investigation, it seems that systemd-resolved re-creates the resolv.conf and stub-resolv.conf files whenever an IPv6 RA is received. 1) One can observe that by setting systemd-resolved's service in debug mode: $ sudo systemctl edit systemd-resolved and in the editor that is opened, add and save this content: [Service] Environment=SYSTEMD_LOG_LEVEL=debug then restart systemd-resolved and watch the logs scroll by with: $ journalctl -fu systemd-resolved 3) In another terminal, watch the files be recreated with: watch -d -n 0.1 stat /run/systemd/resolve/stub-resolv.conf 3) In yet another terminal, run a packet capture and watch "ICMP6, router advertisement" messages come by: sudo tcpdump -ni eth0 icmp6 + You will see that every time a RA packet comes in, resolved's journal + will log this: - You will see that every time a RA packet comes in, resolved's journal will log this: - - Aug 11 17:33:55 lxd02 systemd-resolved[15368]: Sent message + Aug 11 17:33:55 lxd02 systemd-resolved[15368]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/resolve1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=244 reply_cookie=0 signature=sa{sv}as error-name=n/a error- message=n/a And the stat monitoring terminal will blink to highlight the new inode and timestamps of the freshly replaced stub-resolv.conf file. - # Additional information: root@lxd02:~# lsb_release -rd Description: Ubuntu 20.04.1 LTS Release: 20.04 root@lxd02:~# apt-cache policy systemd systemd: - Installed: 245.4-4ubuntu3.2 - Candidate: 245.4-4ubuntu3.2 - Version table: - *** 245.4-4ubuntu3.2 500 - 500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages - 100 /var/lib/dpkg/status - 245.4-4ubuntu3 500 - 500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages + Installed: 245.4-4ubuntu3.2 + Candidate: 245.4-4ubuntu3.2 + Version table: + *** 245.4-4ubuntu3.2 500 + 500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages + 100 /var/lib/dpkg/status + 245.4-4ubuntu3 500 + 500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages root@lxd02:~# uname -a Linux lxd01 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ** Changed in: systemd (Ubuntu) Status: Incomplete => In Progress ** Also affects: systemd (Ubuntu Hirsute) Importance: Undecided Status: New ** Also affects: systemd (Ubuntu Focal) Importance: Undecided Status: New ** Also affects: systemd (Ubuntu Groovy) Importance: Undecided Status: New ** Description changed: [impact] networking changes, like RA events, can cause systemd-resolved to re- write the resolv.conf file, even if the contents didn't change, resulting in unnecessary increased amount of inotify events [test case] see original description [regression potential] regressions would result in incorrect or missing data in the resolv.conf file, possibly resulting in dns failures or errors [scope] - TBD + this is needed for h and eralier + + this is (potentially) fixed upstream by + f3e1f00d03445911ee73729219cea88c8a70c612 which in first included in + v248, so this is needed in hirsute and earlier [original description] # Issue description: On 2 Linode VMs that are used as lxd hosts, we noticed that /run/systemd/resolve/*resolv.conf were re-created quite frequently (~ once per second). We noticed because of the log noise from lxd's dnsmasq instance using inotify to watch the target of /etc/resolv.conf (which points to the stub-resolv.conf in our case). This was (wrongly) reported as a lxd bug (https://github.com/lxc/lxd/issues/7765) until it became apparent it was more likely to be a problem with systemd(-resolved)?. The log noise is the observable problem that would be nice to see addressed: root@lxd02:~# uptime 17:55:48 up 9:52, 1 user, load average: 0.18, 0.11, 0.05 root@lxd02:~# journalctl -b0 | grep -cF dnsmasq 158609 Upon further investigation, it seems that systemd-resolved re-creates the resolv.conf and stub-resolv.conf files whenever an IPv6 RA is received. 1) One can observe that by setting systemd-resolved's service in debug mode: $ sudo systemctl edit systemd-resolved and in the editor that is opened, add and save this content: [Service] Environment=SYSTEMD_LOG_LEVEL=debug then restart systemd-resolved and watch the logs scroll by with: $ journalctl -fu systemd-resolved 3) In another terminal, watch the files be recreated with: watch -d -n 0.1 stat /run/systemd/resolve/stub-resolv.conf 3) In yet another terminal, run a packet capture and watch "ICMP6, router advertisement" messages come by: sudo tcpdump -ni eth0 icmp6 You will see that every time a RA packet comes in, resolved's journal will log this: Aug 11 17:33:55 lxd02 systemd-resolved[15368]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/resolve1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=244 reply_cookie=0 signature=sa{sv}as error-name=n/a error- message=n/a And the stat monitoring terminal will blink to highlight the new inode and timestamps of the freshly replaced stub-resolv.conf file. # Additional information: root@lxd02:~# lsb_release -rd Description: Ubuntu 20.04.1 LTS Release: 20.04 root@lxd02:~# apt-cache policy systemd systemd: Installed: 245.4-4ubuntu3.2 Candidate: 245.4-4ubuntu3.2 Version table: *** 245.4-4ubuntu3.2 500 500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages 100 /var/lib/dpkg/status 245.4-4ubuntu3 500 500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages root@lxd02:~# uname -a Linux lxd01 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ** Changed in: systemd (Ubuntu) Status: In Progress => Fix Released ** Changed in: systemd (Ubuntu Focal) Status: New => In Progress ** Changed in: systemd (Ubuntu Groovy) Status: New => In Progress ** Changed in: systemd (Ubuntu Hirsute) Status: New => In Progress ** Changed in: systemd (Ubuntu Hirsute) Importance: Undecided => Wishlist ** Changed in: systemd (Ubuntu Groovy) Importance: Undecided => Wishlist ** Changed in: systemd (Ubuntu Focal) Importance: Undecided => Wishlist ** Changed in: systemd (Ubuntu Hirsute) Assignee: (unassigned) => Dan Streetman (ddstreet) ** Changed in: systemd (Ubuntu Groovy) Assignee: (unassigned) => Dan Streetman (ddstreet) ** Changed in: systemd (Ubuntu Focal) Assignee: (unassigned) => Dan Streetman (ddstreet) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1891215 Title: systemd-resolved re-creates /run/systemd/resolve/*resolv.conf for every IPv6 RA received Status in systemd: Unknown Status in systemd package in Ubuntu: Fix Released Status in systemd source package in Focal: In Progress Status in systemd source package in Groovy: In Progress Status in systemd source package in Hirsute: In Progress Bug description: [impact] networking changes, like RA events, can cause systemd-resolved to re- write the resolv.conf file, even if the contents didn't change, resulting in unnecessary increased amount of inotify events [test case] see original description [regression potential] regressions would result in incorrect or missing data in the resolv.conf file, possibly resulting in dns failures or errors [scope] this is needed for h and eralier this is (potentially) fixed upstream by f3e1f00d03445911ee73729219cea88c8a70c612 which in first included in v248, so this is needed in hirsute and earlier [original description] # Issue description: On 2 Linode VMs that are used as lxd hosts, we noticed that /run/systemd/resolve/*resolv.conf were re-created quite frequently (~ once per second). We noticed because of the log noise from lxd's dnsmasq instance using inotify to watch the target of /etc/resolv.conf (which points to the stub-resolv.conf in our case). This was (wrongly) reported as a lxd bug (https://github.com/lxc/lxd/issues/7765) until it became apparent it was more likely to be a problem with systemd(-resolved)?. The log noise is the observable problem that would be nice to see addressed: root@lxd02:~# uptime 17:55:48 up 9:52, 1 user, load average: 0.18, 0.11, 0.05 root@lxd02:~# journalctl -b0 | grep -cF dnsmasq 158609 Upon further investigation, it seems that systemd-resolved re-creates the resolv.conf and stub-resolv.conf files whenever an IPv6 RA is received. 1) One can observe that by setting systemd-resolved's service in debug mode: $ sudo systemctl edit systemd-resolved and in the editor that is opened, add and save this content: [Service] Environment=SYSTEMD_LOG_LEVEL=debug then restart systemd-resolved and watch the logs scroll by with: $ journalctl -fu systemd-resolved 3) In another terminal, watch the files be recreated with: watch -d -n 0.1 stat /run/systemd/resolve/stub-resolv.conf 3) In yet another terminal, run a packet capture and watch "ICMP6, router advertisement" messages come by: sudo tcpdump -ni eth0 icmp6 You will see that every time a RA packet comes in, resolved's journal will log this: Aug 11 17:33:55 lxd02 systemd-resolved[15368]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/resolve1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=244 reply_cookie=0 signature=sa{sv}as error-name=n/a error- message=n/a And the stat monitoring terminal will blink to highlight the new inode and timestamps of the freshly replaced stub-resolv.conf file. # Additional information: root@lxd02:~# lsb_release -rd Description: Ubuntu 20.04.1 LTS Release: 20.04 root@lxd02:~# apt-cache policy systemd systemd: Installed: 245.4-4ubuntu3.2 Candidate: 245.4-4ubuntu3.2 Version table: *** 245.4-4ubuntu3.2 500 500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages 100 /var/lib/dpkg/status 245.4-4ubuntu3 500 500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages root@lxd02:~# uname -a Linux lxd01 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux To manage notifications about this bug go to: https://bugs.launchpad.net/systemd/+bug/1891215/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp