Public bug reported:

DESCRIPTION:
Release: Ubuntu 24.04 LTS
Package: gnome-shell 46.0-0ubuntu6~24.04.16 (Wayland)
Also affected: 26.04 (gnome-shell 50.1) appears to contain the same code.

Symptom
After a few weeks of uptime the whole desktop freezes for ~0.9 s every
11 s. Keystrokes typed during a freeze are queued and delivered in a
burst (e.g. 30 repeated backspaces). Probing org.gnome.Shell over D-Bus
(Properties.Get ShellVersion) at 10 Hz shows main-thread stalls of
840-950 ms, exactly 11.0 s apart. No system-wide stall, no kernel/GPU
errors. Disabling all extensions (ubuntu-dock, appindicators,
tiling-assistant) does not help. perf shows the time spent almost
entirely in libmozjs/libgjs (GC tracing, e.g. JSRuntime::tracePersistentRoots).

gnome-shell RSS was 2.5 GB after 28 days. A heap dump
(imports.system.dumpHeap) contained:

  526,195  Function _addAccessPoint/<
  527,337  Function _trackDestroy/signalData.destroyId<
  547,491  GObject_Object wrappers

Cause
In js/ui/status/network.js, NMWirelessDeviceItem._addAccessPoint():
when ap.get_ssid() == null (hidden network) it does

    ap.connectObject('notify::ssid', () => { ... }, this);

and returns. Hidden APs never get an SSID, and
NMWirelessDeviceItem._removeAccessPoint() never calls
ap.disconnectObject(this), so every hidden AP that appears and
disappears in a scan is leaked (NMAccessPoint + closure + SignalTracker
bookkeeping) for the lifetime of the device item. In my location 42 of
119 visible APs are hidden and NetworkManager adds/removes dozens per
minute, so the leak grows quickly, and each GC has to trace all of it.

Upstream gnome-shell's gnome-50 branch (after 50.2) and main fix this:
_removeAccessPoint() now begins with ap.disconnectObject(this).
Tags 50.1 and 50.2 do not have it.

Workaround (verified)
  nmcli dev set wlp1s0 managed no; sleep 3; nmcli dev set wlp1s0 managed yes
This destroys the Wi-Fi device menu item, freeing the leak: RSS dropped
2.49 GB -> 1.27 GB and the periodic stalls disappeared (worst D-Bus
response 43 ms over 60 s). Toggling Wi-Fi off/on does NOT help, because
the item is kept in the UNAVAILABLE state.

Request
Please backport the upstream _removeAccessPoint disconnect fix to
noble (46) and resolute (50.1).

  MR:     https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4422
  main:   
https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/bec12ffd2075608d10550232e11516d79b036f7c
  gnome-50 cherry-pick:
          
https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/926395681e4073b47df25de5f68ad6b0a812c092


Hardware: Framework Laptop 16, AMD Phoenix1, MediaTek mt7921e Wi-Fi,
kernel 7.0.0-38-generic.

ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: gnome-shell 46.0-0ubuntu6~24.04.16
ProcVersionSignature: Ubuntu 7.0.0-38.38~24.04.4-generic 7.0.14
Uname: Linux 7.0.0-38-generic x86_64
ApportVersion: 2.28.3-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Mon Nov  2 10:15:41 2026
DisplayManager: gdm3
InstallationDate: Installed on 2025-06-08 (512 days ago)
InstallationMedia: Ubuntu 24.04.2 LTS "Noble Numbat" - Release amd64 (20250215)
ProcEnviron:
 LANG=en_US.UTF-8
 PATH=(custom, no user)
 SHELL=/usr/bin/zsh
 TERM=tmux-256color
 XDG_RUNTIME_DIR=<set>
RebootRequiredPkgs: Error: path contained symlinks.
RelatedPackageVersions: mutter-common 46.2-1ubuntu0.24.04.18
SourcePackage: gnome-shell
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: gnome-shell (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug noble wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2172758

Title:
  gnome-shell leaks hidden Wi-Fi access points

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/2172758/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to