Hi everyone,
I've been using Zorin OS 18 for about a week now on a fresh install, and
overall the experience has been great — especially how well USB
peripherals are detected out of the box. While setting up my Epson
L3250 printer/scanner, though, I found a small but consistent glitch
I wanted to share, in case it helps improve things for others too.
The issue: every time the printer is powered on or off (or the USB
cable is unplugged/replugged), the whole desktop freezes for about
1-3 seconds. It's not a big deal functionally, but it's the kind of
small rough edge that stands out on an otherwise very polished system.
I dug into it a bit with journalctl and found the cause: at the exact
moment of the USB event, the built-in "Zorin Printers" panel extension
(zorin-printers) throws a flood of repeated GJS errors —
hundreds of lines in a couple of seconds — like this:
gnome-shell[PID]: Object St.BoxLayout (0x...), has been already disposed
— impossible to access it. This might be caused by the object having
been destroyed from C code using something such as destroy(), dispose(),
or remove() vfuncs.
== Stack trace for context 0x... ==
#0 ... resource:///org/gnome/shell/ui/popupMenu.js:828
#1 ... resource:///org/gnome/shell/ui/popupMenu.js:846
#2 ... extensions/zorin-printers@zorinos.com/extension.js:119
#3 ... extensions/zorin-printers@zorinos.com/extension.js:215
Similar traces also point to extension.js lines 122, 193, 194, 203, and
215, along with repeated Clutter assertion failures:
clutter_text_get_editable: assertion 'CLUTTER_IS_TEXT (self)' failed
clutter_text_get_text: assertion 'CLUTTER_IS_TEXT (self)' failed
clutter_text_set_text: assertion 'CLUTTER_IS_TEXT (self)' failed
My guess (not a GNOME Shell dev, just going by the logs) is a race
condition: when udev-configure-printer disables/enables the print queue
in response to the USB event, the extension tries to rebuild its panel
menu synchronously — but some widgets (St.BoxLayout, St.Label) have
already been destroyed by the Shell by the time the extension's
callback runs. Processing that flood of exceptions all at once seems
to be what causes the visible freeze.
System details:
- Zorin OS 18, fresh install (< 1 week old)
- Kernel: 6.17.0-35-generic
- Session: Wayland
- Printer: Epson L3250 (USB)
Steps to reproduce:
- Have a USB printer connected and set up (Epson L3250 in my case).
- Power the printer off, then back on (or just unplug/replug the USB
cable). - Desktop freezes for 1-3 seconds right at that moment.
- Watching journalctl -f during the event confirms the flood of
"already disposed" errors from zorin-printers.
Workaround: disabling the extension (gnome-extensions disable
zorin-printers, then logging out/in — required on Wayland)
gets rid of the freeze completely. Printing still works fine through
Settings > Printers either way; you just lose the panel status icon.
Not urgent at all, just thought the detailed logs might save someone
some debugging time if they run into the same thing. Happy to share
the full journalctl output if useful — I've got it saved.
Thanks for all the work on Zorin, really enjoying it so far!