Comment 0 for bug 1647283

Revision history for this message
Ying-Chun Liu (paulliu) wrote :

Forwarded https://bugzilla.gnome.org/show_bug.cgi?id=775613

Version: NetworkManager 1.4.2

This bug happens after power-on with probability about 1/50.
That means we need to reboot about 50 times to get into the buggy situation.
"nmcli d" shows the device type is ethernet:

DEVICE TYPE STATE CONNECTION
wlp1s0 ethernet unavailable --
lo loopback unmanaged --

The bug starts from a race condition. But it is not the root cause.
I've also attach 2 logs. One is in good situation. Another is in bad situation.
This log is generated by applying a "log patch" to network-manager 1.4.2 so we can see more stuff.

In the bad situation. The bug starts with race condition. But the race condition is not the root cause. The race condition is:
 * During the renaming from "wlan0" to "wlp1s0". "wlan0" disappeared.
 * Inside the NM, it is still using "wlan0" in "_linktype_get_type()".
 * Since /sys/class/net/wlan0/uevent is disappeared. so the type matching failed in _linktype_get_type().
 * Also wifi_utils_is_wifi() failed to because /sys/class/net/wlan0 disappeared.
 * And finally, devtype and kind are both NULL, so it returns NM_LINK_TYPE_ETHERNET for wlan0.

Later, wlan0 is renamed to wlp1s0, and it seems to me that the Object inherit the type so it is still type ethernet.
But from the log, I saw _linktype_get_type() is called several times later and return the correct type (wifi). But just, "nmcli d" still shows type ethernet.

I'm wondering if we are missing to update the type in the Object created after renaming and re-detecting the type.