Glibc in Stonking
Another cycle; another glibc release…
As has been the case with the few past cycles, the new 2.44 release of glibc is expected to fall (August 1) just before Ubuntu feature freeze (August 20). As previously, that merge happening somewhat late in the cycle means that it’s worth doing extra due-diligence to make sure the impacts are well known before going ahead.
For this reason, we’ve already made a snapshot build. That glibc was from git rev 84c3993f1f, which is around the soft freeze for 2.44. Hopefully it gives us a good idea of the final release. From a cursory look of the many changes, there are plenty of consolidation and fixes, but nothing as breaking as the previous release (which had C99 const markers additions, required fixing multiple packages). This snapshot was then used to trigger a glibc test rebuild at the same time as we did an archive test rebuild. This is with the hope of having meaningful data about possible FTBFS induced by the new glibc.
Current status
Unfortunately, rebuilding the archive takes so much time it won’t finish in time for the release. The data gathered so far is still valuable though:
-
14123 success builds across all architectures (115780 for the reference rebuild)
-
703 failures (3089 for the reference rebuild)
-
142711 still queued (37000 for the reference)
-
5% failure rate (vs 2.6% for the reference)
Over the past few days, I’ve been going through the various failures and checking the delta with the main archive rebuild.
At the time of this writing, there were many (219) build failures, but so far everything looks fairly Ok to stick to the plan:
-
I ignored what was already FTBFS in the reference build
-
151 of the remaining failures were caused by Launchpad’s switch to sha512-only hashes. This broke many builds over a few days, most of which are getting rebuilt. Thus, the number of failures is currently going down (for those tracking it).
-
14 archive dependencies errors, timeouts, networks during build
-
Misc errors. See last section.
Next steps
-
glibc will release early August. Debian might have an experimental build from which we’ll merge, if available.
-
During the week of August 9, I’ll try to have a merge available, built in PPA and with some extra rebuilds of sensitive packages and previously collected failures (in case they self-resolve). If everything looks fine, we’ll upload (possibly delaying depending on the state of other transitions by then).
-
Like for Resolute cycle, FTBFS bugs might be pre-emptively filed against packages which we are sure will fail to build. If you see an “Upcoming glibc FTBFS” bug filed against your packages, that’s why.
-
As usual for glibc merges, it’s expected we’ll have to add a hint to this merge and file more bugs once it lands in the proposed pocket.
Misc errors
Like was done for the last cycle, I’ll try rebuilding this handful of known failures once we do have a stable release, and file bugs against the affected packages. So far, the naughty list is as follows:
libvirt-python- possible lto issue
gnome-keyring- OOM ?
linux-main-modules-azure-fdelinux-main-modules-oraclelinux-main-modules-aws- archive issue
ruby-sinatra- gem depends error; possibly timing-related
pycurl- disabled feature; broken test
libuv1- possibly flaky test
gnome-settings-daemon- possible flaky test_session_idle_delay
xdg-terminal-exec- package bug; parallel make install race
tlp- possible coreutils bug; looks like a race in install
cross-toolchain-base- glibc version breaks patch; package needs fixing
python-psutil- lto error; possibly caused by glibc.
gutenprint- segfault in test; possible glibc arch bug
tokyocabinet- possible flaky test, needs retry
lvm2- coreutils race?
libblockdev- network error during build
puma- possibly flaky test
nova- test failure; possibly flaky
coreutils- test failure; likely too sensitive to allocation variance; likely caused by glibc update
pcmciautils- possible bug; compiler bounds check error
util-linux- test failure; test possibly sensitive to glibc changes
fontconfig- flaky test; possible race in test
polyml- segfault; possibly glibc
glibc- old version: already fixed upstream
vim- buggy test; incompatible with rust-coreutils
ruby3.3- flaky test?