Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
network: fix crash when Wi-Fi or eth interface gets removed from the …
…system When a network interface is disconnected from the system (e.g., physically removed if it's a USB adapter), probert asynchronously calls the del_link() method. Upon receiving this notification, Subiquity server wants to send an update to the Subiquity clients. The update contains information about the interface that disappeared - which is obtained through a call to netdev_info. Unfortunately, for Wi-Fi and Ethernet interfaces, netdev_info dereferences the NetworkDev.info variable. Interfaces that no longer exist on the system (and also interfaces that do not yet exist), have their "info" variable set to None - so an exception is raised when dereferencing it. Wi-Fi interface: File "subiquitycore/models/network.py", line 227, in netdev_info scan_state=self.info.wlan['scan_state'], AttributeError: 'NoneType' object has no attribute 'wlan' Ethernet interface: File "subiquitycore/models/network.py", line 201, in netdev_info is_connected = bool(self.info.is_connected) AttributeError: 'NoneType' object has no attribute 'is_connected' Fixed by making sure netdev_info does not raise if the dev.info variable is None. This is a valid use-case. Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
- Loading branch information