gnome-shell/js
Sebastian Keller feb1c57dde status/network: Fix WirelessNetwork related leaks
NetworkManager frequently refreshes the list of available access points.
For some reason this often ends up removing some or all access points
only to add them back in a later refresh later. With the exception of
the currently connected access point, which is never removed.

When all access points of a WirelessNetwork have been removed, it gets
destroyed by NMWirelessDeviceItem::_removeAccessPoint(). This however
does not happen for the currently connected network due to the always
present access point. If this network now happens to consist of multiple
access points, the "unused" NMAccessPoints will get removed and added
in these refreshes, without the WirelessNetwork getting destroyed.

Whenever such an unused access point is added, due to the use of signal
tracking this leaks the NMAccessPoint and SignalTracker until the
WirelessNetwork is destroyed.

However when the NMWirelessDeviceItem is destroyed, for example due to
suspending, it stops tracking access point changes, ensuring that the
condition for the WirelessNetwork being destroyed can not occur anymore.

Even with just two access points, such as can be found in 2.4GHz+5GHz
home routers this issue leaks hundreds of NMAccessPoints and
SignalTrackers per day. As well as a small number of WirelessNetworks
which are also kept alive by the SignalTrackers.

To fix this disconnect from the access point when it gets removed and
destroy all remaining networks when the NMWirelessDeviceItem is
destroyed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2652>
2023-02-18 21:34:56 +00:00
..
dbusServices screencastService: Handle case where no videos directory exists 2023-01-11 16:51:30 +00:00
gdm authPrompt: Also replace full-width colon 2023-02-13 20:32:21 +00:00
misc inputMethod: Make set_surrounding() send also empty string 2023-02-01 14:42:32 +00:00
perf Add 'headless start' perf test 2023-02-06 18:10:01 +00:00
portalHelper portalHelper: Switch to soup3-based WebKitGTK 2022-06-21 19:29:02 +00:00
ui status/network: Fix WirelessNetwork related leaks 2023-02-18 21:34:56 +00:00
js-resources.gresource.xml quickSettings: Add background apps menu 2023-02-12 16:16:36 +00:00
meson.build extensions-app: Move Extensions app to new subproject 2020-03-27 23:33:30 +00:00
portal-resources.gresource.xml js/portal-resources: Add missing fileUtils to js path 2022-11-03 18:02:27 +00:00