Emergency freeze break request for glib
"\"Douglas R. Reno\"" ([email protected] via blfs-dev Mailing List) <[email protected]> Mon, 23 Feb 2026 10:43:10 -0600
| Newsgroups | gmane.linux.lfs.beyond.devel |
|---|---|
| Message-ID | <[email protected]> |
Good morning, Throughout this release cycle, we've been running test suites for almost all packages because of some of the changes that glibc-2.43 has come in with, notably the const changes for some C23 functions that can occasionally cause build failures (but can also trigger unexpected behavior at runtime if not fixed). When we got to glib, there was a test failure in it's gdatetime test suite that signaled a serious memory corruption problem when testing the conversion of the date and time to the Thai Solar Calendar. During initial research I found a bug report upstream at glibc and contributed to it at https://sourceware.org/bugzilla/show_bug.cgi?id=33899, working with Sam James from Gentoo to help determine the cause of the problem and reproduce the error. The bisect mentioned there was setting the malloc tcache fill count to 16, where it was 7 in previous releases. This pointed towards a caching problem in glib's code being triggered by the malloc change. Pierre also helped me with digging up some documentation to help support this theory. Eventually the bug was taken to GNOME's GitLab, since GNOME handles glib. The bug report for that can be found at https://gitlab.gnome.org/GNOME/glib/-/issues/3895. This morning I got a series of emails that the problem was resolved. There is now a fix at https://gitlab.gnome.org/GNOME/glib/-/merge_requests/5035 Here's some context from the PR which might be helpful: "The string pointer returned by setlocale (LC_TIME, NULL) may change if other code calls setlocale() again. But because internally glibc implements it using strdup(), the pointer value itself may actually stay the same even if the string contents change. This started happening more commonly in glibc 2.43, due to an internal malloc() change which happened to trigger this latent bug. In the situations where this happened, it resulted in an outdated cached era value being used. Fix it by taking a copy of the LC_TIME string. Unfortunately this means a reachable (‘leaked’) static string allocation at the end of the process’ life, but tooling should ignore that if we mark it with g_ignore_leak()." Because of the severity of the issue (memory corruption and possible incorrect behavior or crashes from applications), I'd like to request an emergency freeze break to insert this patch. I know this will result in a significant amount of retesting being required. When I discussed it with Bruce originally in IRC, we came to the conclusion that only packages which use g_date_time_format() are affected. The API documentation for that function can be found here at https://docs.gtk.org/glib/method.DateTime.format.html, and searching for date_time_lookup_era in Debian's codesearch engine (https://sources.debian.org/src/glib2.0/2.87.2-3/glib/gdatetime.c?hl=3383#L3383) points towards the only usage being here. Any application which uses g_date_time_format and uses the E/%E formatting specifier can trigger this problem. This change would affect the following packages, based on the fact that they use g_date_time_format: libqmi gedit (libgedit-gtksourceview) gst-plugins-good localsearch libgweather4 poppler gnome-color-manager libshumate ostree (SLFS) gnumeric gnome-logs glib-networking thunar gtksourceview3 libsecret appstream-glib gedit gvfs gnome-desktop xdg-desktop-portal-gtk glib2.0 gcr4 glibmm2.4 xdg-desktop-portal-gnome colord gimp gtk+3.0 gtk4 librsvg grilo exo libgsf evolution gstreamer gegl nautilus gnome-disk-utility gst-plugins-base gnome-control-center seahorse xfdesktop4 gnome-shell gtksourceview4 xfce4-panel udisks2 libgit2-glib (**used in glycin, gst-plugins-rs, loupe) gtksourceview5 gnome-settings-daemon rust-glib (**used in glycin, gst-plugins-rs, loupe) evince gcr Transmission flatpak (in SLFS) bluefish accountsservice modemmanager libreoffice balsa xfce4-screensaver xfce4-notifyd evolution-data-server gnome-terminal qemu NetworkManager xfce4-settings geoclue file-roller rust-glib-0.18 (**used in glycin, gst-plugins-rs, loupe at least) libsoup3 webkit2gtk gnome-screenshot gst-plugins-bad rofi (in SLFS) glibmm2.68 libgusb appstream rust-glib-sys-0.18 (**used in glycin, gst-plugins-rs, loupe at least) gobject-introspection tinysparql epiphany librest I know that list looks massive. Given that 90% of these problem packages are in gnome, I'd like to volunteer to take care of the testing and implementation for this. Zeckma, I can also take care of the few packages in SLFS for you that use it on my test laptop (which is still needed to test intel-vaapi-driver, xf86-input-wacom, and x86-input-synaptics and possibly LXQt with KF6 if Bruce gets that in today). The only package I will not be able to test out of the above list at this time is LibreOffice as I need to finish creating the new JDK binary for that and that's at least another day down the pipeline on pair of VMs. I was able to get the list from Debian's codesearch archive again from https://codesearch.debian.net/search?q=g_date_time_format&literal=1, but the best approach was actually running 'curl -s https://codesearch.debian.net/results/b6b0d6ccd04f345a/packages.txt'. This gave me a comprehensive list of packages affected (228 in Debian), which I then scanned through to find the packages that we carry in *LFS. In our case, that is *81* packages. Currently there are numerous packages in the GNOME chapter which are untagged thankfully, but I'd like to request that folks who are working on the book today (if this request is approved) do not tag the following packages: - bluefish - epiphany - balsa - transmission - qemu - gnumeric - gedit - GIMP As part of this process I will tag and work through those. Given that the end of the release cycle is approaching extremely rapidly, I think this is probably something I'll want/need to finish today (with the exception of LibreOffice). I know this request is a LOT, but we need to get this taken care of. Thank you, - Doug -- http://lists.linuxfromscratch.org/sympa/info/blfs-dev Unsubscribe: See the above information page