Bug 2120763 - Restarting NM does not kill the dnsmasq instances when dns=none defined in NetworkManager.conf
Summary: Restarting NM does not kill the dnsmasq instances when dns=none defined in Ne...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: NetworkManager
Version: 8.8
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Wen Liang
QA Contact: Matej Berezny
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-08-23 17:10 UTC by Wen Liang
Modified: 2023-05-16 11:07 UTC (History)
8 users (show)

Fixed In Version: NetworkManager-1.40.10-1.el8
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-05-16 09:04:54 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
trace log (651.66 KB, text/plain)
2022-08-23 17:10 UTC, Wen Liang
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker NMT-141 0 None None None 2023-01-23 10:24:55 UTC
Red Hat Issue Tracker RHELPLAN-132039 0 None None None 2022-08-23 17:18:06 UTC
Red Hat Product Errata RHBA-2023:2968 0 None None None 2023-05-16 09:06:21 UTC
freedesktop.org Gitlab NetworkManager NetworkManager-ci merge_requests 1307 0 None opened dns: added test dns_kill_dnsmasq_when_nm_restarts 2023-01-29 14:37:04 UTC
freedesktop.org Gitlab NetworkManager NetworkManager merge_requests 1344/ 0 None None None 2022-08-24 16:02:35 UTC

Description Wen Liang 2022-08-23 17:10:54 UTC
Created attachment 1907171 [details]
trace log

Created attachment 1907171 [details]
trace log

Description of problem:
When dns=none defined in NetworkManager.conf and restarting the NM, the previous running dnsmasq instances are not killed by NM. 

Version-Release number of selected component (if applicable):
nmcli tool, version 1.41.0-30859.8959083784.el8
Red Hat Enterprise Linux release 8.7 Beta (Ootpa)


How reproducible:
always

Steps to Reproduce:
[root@beaker-networkmanager-custom-upstream-3126 NetworkManager-ci]# ps aux | grep dns
dnsmasq   260057  0.0  0.0  73356  2528 ?        S    12:24   0:00 dnsmasq --pid-file=/tmp/dhcp_inbr.pid --dhcp-leasefile=/tmp/dhcp_inbr.lease --listen-address=192.168.100.1 --dhcp-range=192.168.100.10,192.168.100.254,240 --interface=masq --bind-interfaces
dnsmasq   260081  0.0  0.0  73356  2592 ?        S    12:24   0:00 dnsmasq --pid-file=/tmp/dhcp_simbr.pid --dhcp-leasefile=/tmp/dhcp_simbr.lease --dhcp-range=10.16.1.10,10.16.1.254,240 --dhcp-range=2620:52:0:1086::10,2620:52:0:1086::1ff,slaac,64,240 --enable-ra --interface=simbr --bind-interfaces
dnsmasq   291880  0.0  0.1  73328  4604 ?        S    12:40   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
root      261442  0.0  0.0 221944  1148 pts/0    S+   12:40   0:00 grep --color=auto dns


[root@beaker-networkmanager-custom-upstream-3126 NetworkManager-ci]# vi /etc/NetworkManager/NetworkManager.conf

[root@beaker-networkmanager-custom-upstream-3126 NetworkManager-ci]# systemctl restart NetworkManager
[root@beaker-networkmanager-custom-upstream-3126 NetworkManager-ci]# ps aux | grep dns
dnsmasq   260057  0.0  0.0  73356  2528 ?        S    12:24   0:00 dnsmasq --pid-file=/tmp/dhcp_inbr.pid --dhcp-leasefile=/tmp/dhcp_inbr.lease --listen-address=192.168.100.1 --dhcp-range=192.168.100.10,192.168.100.254,240 --interface=masq --bind-interfaces
dnsmasq   260081  0.0  0.0  73356  2592 ?        S    12:24   0:00 dnsmasq --pid-file=/tmp/dhcp_simbr.pid --dhcp-leasefile=/tmp/dhcp_simbr.lease --dhcp-range=10.16.1.10,10.16.1.254,240 --dhcp-range=2620:52:0:1086::10,2620:52:0:1086::1ff,slaac,64,240 --enable-ra --interface=simbr --bind-interfaces
dnsmasq   291880  0.0  0.1  73328  4604 ?        S    12:40   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
root      261594  0.0  0.0 221944  1184 pts/0    S+   12:41   0:00 grep --color=auto dns
[root@beaker-networkmanager-custom-upstream-3126 NetworkManager-ci]# vi /etc/NetworkManager/NetworkManager.conf
[root@beaker-networkmanager-custom-upstream-3126 NetworkManager-ci]# NetworkManager --print-config
# NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf (lib: 00-server.conf) (etc: 99-test.conf, 99-unmanage-orig.conf)
 
[main]
# rc-manager=symlink
# auth-polkit=true
# iwd-config-path=
no-auto-default=*
ignore-carrier=*
dns=none
debug=RLIMIT_CORE,fatal-warnings
dhcp=nettools
plugins=ifcfg-rh,keyfile
configure-and-quit=no
 
[keyfile]
unmanaged-devices=interface-name:orig-*
 
[logging]
# backend=journal
# audit=false
level=TRACE
domains=ALL
 
[device]
# wifi.backend=wpa_supplicant
 
# no-auto-default file "/var/lib/NetworkManager/no-auto-default.state"


Actual results:
The running of the dnsmasq instance started by NM is not killed.

Expected results:
The running of the dnsmasq instance started by NM should be killed.

Comment 3 Wen Liang 2022-12-22 18:48:25 UTC
The PR was merged in upstream, and I tested it, the running dnsmasq instance which started by NM was killed during restart when dns=none defined in NetworkManager.conf. Thus, change the state into `post`.

Comment 4 David Jaša 2022-12-22 20:40:27 UTC
Clear reproducer - qa_ack+

[root@rhel-87-nightly NetworkManager-ci]# cat << EOF > /etc/NetworkManager/conf.d/90-dnsmasq.conf
> [main]
> dns=dnsmasq
> EOF
[root@rhel-87-nightly NetworkManager-ci]# systemctl restart NetworkManager
[root@rhel-87-nightly NetworkManager-ci]# pgrep -laf dnsmasq
1914 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
[root@rhel-87-nightly NetworkManager-ci]# rm /etc/NetworkManager/conf.d/90-dnsmasq.conf 
rm: remove regular file '/etc/NetworkManager/conf.d/90-dnsmasq.conf'? y
[root@rhel-87-nightly NetworkManager-ci]# systemctl restart NetworkManager
[root@rhel-87-nightly NetworkManager-ci]# pgrep -laf dnsmasq
1914 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
[root@rhel-87-nightly NetworkManager-ci]# cat << EOF > /etc/NetworkManager/conf.d/90-dns-none.conf
[main]
dns=none   
EOF
[root@rhel-87-nightly NetworkManager-ci]# systemctl restart NetworkManager
[root@rhel-87-nightly NetworkManager-ci]# pgrep -laf dnsmasq
1914 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

tested using: NetworkManager-1.40.0-2.el8_7.x86_64

Comment 5 Beniamino Galvani 2023-01-11 15:26:49 UTC
The fix works for me, setting Verified:Tested:

  # grep dns= /etc/NetworkManager/NetworkManager.conf
  dns=dnsmasq

  # pgrep dnsmasq -a
  11949 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --cache-size=400 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

  # sed -i 's/dns=dnsmasq/dns=none/' /etc/NetworkManager/NetworkManager.conf

  # systemctl restart NetworkManager

  # pgrep dnsmasq -a
  #

Comment 10 errata-xmlrpc 2023-05-16 09:04:54 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (NetworkManager bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2968


Note You need to log in before you can comment on or make changes to this bug.