** Description changed: Please consider backporting https://gitlab.gnome.org/GNOME/glib/-/commit/7e30869 to Ubuntu 24.04 glib2 I finally tracked down why evolution (with EWS backend in my case) ends - up with a bunch of livelocked jobs making no forward progress when it + up with a bunch of deadlocked jobs making no forward progress when it tries to refresh too many folders at once. It boils down to evo exhausing glib2's GTask pool, and the underlying GTask watchdog for growing the pool not working properly. The above upstream commit fixes the latter. Here's a more detailed description from my artifical buddy: Evolution's mail sync jobs can occupy every thread in GIO's shared GTask pool while blocked on a common connection lock; the lock holder then performs a synchronous TLS handshake (glib-networking's g_tls_connection_base_handshake()), whose handshake worker is itself queued as a GTask on that same exhausted pool — and because gtask.c's pool-growing watchdog is left disarmed at that point (glib 2.80's g_task_thread_cleanup() shrinks the pool's max threads on every completion and nothing re-arms the watchdog when a task is merely queued), the handshake task never runs, deadlocking the account permanently; fixed upstream by commit 7e30869 ("gtask: fix g_task_run_in_thread", issue #3840), which keeps one thread of headroom, but that fix is absent from the glib-2-80 series shipped in noble. ProblemType: Bug DistroRelease: Ubuntu 24.04 Package: libglib2.0-0t64 2.80.0-6ubuntu3.8 ProcVersionSignature: Ubuntu 7.0.0-28.28~24.04.1-generic 7.0.12 Uname: Linux 7.0.0-28-generic x86_64 ApportVersion: 2.28.3-0ubuntu0.1 Architecture: amd64 CasperMD5CheckResult: unknown CurrentDesktop: ubuntu:GNOME Date: Mon Aug 31 14:44:13 2026 ProcEnviron: LANG=en_US.UTF-8 PATH=(custom, no user) SHELL=/bin/bash TERM=xterm-256color XDG_RUNTIME_DIR=<set> RebootRequiredPkgs: Error: path contained symlinks. SourcePackage: glib2.0 UpgradeStatus: No upgrade log present (probably fresh install) Here's the SRU template: [Impact] * Evolution livelocks trying to perform too many tasks at once. This bug probably affects a number of other glib users. * This is causing significant headaches for corporate users of evo with evolution-ews [Test Plan] * It can generally be reproduced by triggering enough simultanous tasks in evolution but it's difficult to provide step-by-step instructions. i have attached an AI generated reproducer however that reproduces the same condition. * The patch is upstream. It fixes the problem by ensuring that at least one spare GTask is always available. [Where problems could occur] * I can't think of anything * The patch modifies the localized cleanup path of a gtask in a rather straightforward way and has been upstream in glib2 for almost a year now. [Other Info] * Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/7e30869
-- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to glib2.0 in Ubuntu. https://bugs.launchpad.net/bugs/2165869 Title: glib2 GTask bug causes livelocks in Evolution (and others) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/2165869/+subscriptions -- desktop-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/desktop-bugs
