Public bug reported:

Since gnome-shell-ubuntu-extensions 50.26.04.8ubuntu was installed 
(2026-09-28), my
desktop has frozen completely four times in two days (Sep 29 14:39, Sep 30 
13:18,
16:08 and 17:46). Screen, mouse and keyboard stop responding. Audio and 
background
processes keep running (I could keep talking in a Teams call). It never 
recovers on its
own; I had to force a logout or hold the power button each time.

In each case gnome-shell is spinning in a tight loop in the main thread and 
logging the
same two errors at roughly 130,000 messages per second. journald reports
"Suppressed ~4,000,000 messages from [email protected]" every 30 seconds for 
the whole
episode. rsyslog does not rate limit, so /var/log/syslog grew to 125 GB.

What the traces show (see attached gnome-shell-freeze-logs.txt):

1. Before the loop, ubuntu-dock's notificationsMonitor.js (_checkNotifications, 
lines
   86-108, via utils.js GlobalSignalsHandler) accesses and connects signals on a
   Gjs_ui_messageTray_Notification that "has been already disposed". So a 
disposed
   Notification object is still present in a Source's `notifications` array.

2. Later, when the sending app disappears from D-Bus, 
FdoNotificationDaemonSource
   ._onNameVanished() (notificationDaemon.js:347) calls destroy() (:390), which 
runs
   MessageTray.Source.destroy():

       while (this.notifications.length > 0) {
           const [oldest] = this.notifications;
           oldest.destroy(reason);          // messageTray.js:602
       }

   oldest.destroy() hits the disposed object: emit('destroy') at 
messageTray.js:489
   fails ("impossible to emit any signal on it") and run_dispose() at :497 fails
   ("impossible to access it"). Because the 'destroy' signal never fires, the
   notification is never removed from this.notifications, and the while loop 
never
   terminates. gnome-shell is the Wayland compositor, so the whole desktop 
freezes.

The loop stops only when the session is killed.

Two things seem worth fixing:
- ubuntu-dock: the notification counter's signal handling leaves (or fails to 
cope
  with) a disposed Notification in the source list. Disabling the counter 
avoids the
  problem entirely:
    gsettings set org.gnome.shell.extensions.dash-to-dock 
show-icons-notifications-counter false
  With this setting off there have been no further freezes.
- gnome-shell: Source.destroy() should not loop forever if a notification 
cannot be
  destroyed, e.g. splice the entry out of this.notifications when 
oldest.destroy()
  does not remove it, or iterate over a copy of the array.

Other enabled extensions: Vitals, Tiling Shell, simple-weather, BingWallpaper, 
ding,
ubuntu-appindicators, snapd-prompting, snapd-search-provider, 
web-search-provider.
Every stack trace in the attached log goes through ubuntu-dock only.

Versions:
  Ubuntu 26.04.1 LTS, kernel 7.0.0-34-generic, Wayland session
  gnome-shell 50.1-0ubuntu1.2, mutter 50.1-0ubuntu2.4, gjs 1.88.0-1
  gnome-shell-ubuntu-extensions 50.26.04.8ubuntu (ubuntu-dock metadata version 
105)
  Hardware: Microsoft Surface, Intel Meteor Lake-P (Arc graphics)

Related upstream reports of "Notification has been already disposed":
  https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/6983
  https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/2107662

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: gnome-shell-ubuntu-extensions 50.26.04.8ubuntu
ProcVersionSignature: Ubuntu 7.0.0-34.34-generic 7.0.14
Uname: Linux 7.0.0-34-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Wed Sep 30 20:31:44 2026
InstallationDate: Installed on 2026-07-17 (75 days ago)
InstallationMedia: Ubuntu 26.04 "Resolute Raccoon" - Release amd64 (20260423.1)
PackageArchitecture: all
SourcePackage: gnome-shell-ubuntu-extensions
UpgradeStatus: No upgrade log present (probably fresh install)

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


** Tags: amd64 apport-bug resolute 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/2169059

Title:
  gnome-shell hangs in infinite loop in Source.destroy() when a
  notification is already disposed (ubuntu-dock notification counter),
  whole desktop freezes and floods the journal

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


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

Reply via email to