GNOME Bugzilla – Bug 759001
[review] dcbw/adsl-fixes-bgo759001: fix some ADSL-related crashes
Last modified: 2015-12-16 15:41:02 UTC
Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (atmtcp0): device state change: deactivating -> disconnected (reason 'new-activation') [110 30 60] Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (atmtcp1): device state change: prepare -> config (reason 'none') [40 50 0] Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: (NetworkManager:2402): NetworkManager-adsl-WARNING **: (nm-device-adsl.c:148):set_nas_iface: runtime check failed: (priv->nas_ifindex > 0) Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (atmtcp1): using NAS interface nas0 (0) Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: nm_platform_link_set_up: assertion 'ifindex > 0' failed Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (nas0): driver 'unknown' does not support carrier detection. Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (nas0): driver 'unknown' does not support carrier detection. Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (nas0): new Ethernet device (carrier: UNKNOWN, driver: 'unknown', ifindex: 82) Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (nas0): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2] Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <error> [1449159630.783077] [platform/nm-linux-platform.c:2816] do_change_link(): platform-linux: do-change-link: failure changing link 82: Invalid add Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <warn> (nas0): failed to reset MAC address to 00:00:00:00:00:00 Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <info> (atmtcp1): device state change: config -> ip-config (reason 'none') [50 70 0] Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: <warn> (atmtcp1): interface atmtcp1 not up for IP configuration Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: ** Dec 03 10:20:30 localhost.localdomain NetworkManager[2402]: NetworkManager:ERROR:ppp-manager/nm-ppp-manager.c:949:create_pppd_cmd_line: assertion failed: (pppoe_binary != NULL) Dec 03 10:20:30 localhost.localdomain systemd[1]: NetworkManager.service: main process exited, code=dumped, status=6/ABRT Dec 03 10:20:30 localhost.localdomain systemd[1]: Unit NetworkManager.service entered failed state. Dec 03 10:20:30 localhost.localdomain systemd[1]: NetworkManager.service failed. Dec 03 10:20:30 localhost.localdomain systemd[1]: NetworkManager.service holdoff time over, scheduling restart. Dec 03 10:20:30 localhost.localdomain systemd[1]: Starting Network Manager... Should be pretty easy to reproduce, actually: 0) create an autoconnect=true ADSL connection: [ipv6] method=ignore may-fail=true [connection] id=ADSL Test uuid=4bb058a8-c5f9-4aaf-a138-7a9b5f88a5af type=adsl autoconnect=true [ppp] noauth=false [adsl] number=#777 username=foobar password=blah protocol=pppoe encapsulation=llc vpi=3 vci=10 [ipv4] method=auto may-fail=true 1) dnf install linux-atm 2) atmtcp virtual listen 3) (in another terminal) atmtcp virtual connect 127.0.0.1
Also, since NM can't get the ifindex of the NAS interface for whatever reason, it then creates a new NMDevice for the NAS. That's because we don't have any logic in nm-manager.c::platform_link_added() to detect non-ip-iface devices and ignore them. Unfortunately ADSL/ATM devices can have *two* claimed interface indexes (one for the NAS interface and a second for the PPPoE/PPPoATM interface that runs over the NAS interface).
The crash is fixed by http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=dd088ed595197662f89a9c5ddadd5e7fbfe66544 master is not affected.
Two patches in the branch, I have a couple more coming to handle the NAS device being created; I think it should actually be ignored for now like we ignore 'wwanX' devices.
Tiny fixup pushed. LGTM.
The branch looks good to me.
Merged to master and cherry-picked to nm-1-0.