ldconfig is still deferred in libc6.preinst
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glibc (Ubuntu) |
Fix Released
|
Undecided
|
Balint Reczey | ||
Focal |
Fix Released
|
Undecided
|
Balint Reczey |
Bug Description
[Impact]
* Upgrade from Bionic to Focal may break if LDCONFIG_
* The fix really forces ldconfig to run immediately
[Test Case]
$ lxc launch ubuntu:bionic bb-glibc-upgrade
$ lxc shell bb-glibc-upgrade
# export LDCONFIG_
# apt update -qq && apt upgrade -qq -y && do-release-upgrade -d
...
With the broken version the following message can be observed:
..
Preparing to unpack .../libc6_
Progress: [ 38%]
ldconfig: wrapper deferring update (trigger activated)
...
The fixed version runs ldconfig immediately after unpacking libc6.
[Regression Potential]
* Very small, the fix is literally adding one single character to properly set LDCONFIG_NOTRIGGER. Running ldconfig immediately as originally planned does not seem to cause issues.
[Other Info]
Fix:
--- a/debian/
+++ b/debian/
@@ -22,7 +22,7 @@ kfreebsd_
# libcrypt1 breaks/replaces libc6 (<< 2.31). cannot use a pre-depends on libcrypt1
# call ldconfig unconditionally for the first libc6 depending on libcrypt1
if [ -n "$preversion" ] && dpkg --compare-versions "$preversion" lt 2.31-0ubuntu2; then
- LCONFIG_NOTRIGGER=y
+ LDCONFIG_
export LDCONFIG_NOTRIGGER
ldconfig || ldconfig --verbose
fi
CVE References
Changed in glibc (Ubuntu): | |
assignee: | nobody → Balint Reczey (rbalint) |
description: | updated |
Changed in glibc (Ubuntu Focal): | |
assignee: | nobody → Balint Reczey (rbalint) |
description: | updated |
description: | updated |
18.04->20.04 upgrade breaks with the reproducer:
...
Preparing to unpack .../libc6_ 2.31-0ubuntu9_ amd64.deb ...
Progress: [ 38%] apt/archives/ libc6_2. 31-0ubuntu9_ amd64.deb (--unpack): 1%3a4.4. 10-10ubuntu4_ amd64.deb ...
ldconfig: wrapper deferring update (trigger activated)
Checking for services that may need to be restarted...
Checking init scripts...
Checking for services that may need to be restarted...
Checking init scripts...
dpkg: error processing archive /var/cache/
new libc6:amd64 package pre-installation script subprocess returned error exit status 20
Selecting previously unselected package libcrypt1:amd64.
dpkg: considering deconfiguration of libc6:amd64, which would be broken by installation of libcrypt1:amd64 ...
dpkg: yes, will deconfigure libc6:amd64 (broken by libcrypt1:amd64)
Preparing to unpack .../libcrypt1_
De-configuring libc6:amd64 (2.27-3ubuntu1.2) ...
Progress: [ 44%] 10-10ubuntu4) ...
Unpacking libcrypt1:amd64 (1:4.4.
Replacing files in old package libc6:amd64 (2.27-3ubuntu1.2) ...
Progress: [ 50%] apt/archives/ libc6_2. 31-0ubuntu9_ amd64.deb libc6.0. crash'
Errors were encountered while processing:
/var/cache/
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/
Exception during pm.DoInstall(): E:Sub-process /usr/bin/dpkg returned an error code (1)
*** Send problem report to the developers?
After the problem report has been sent, please fill out the form in the
automatically opened web browser.
What would you like to do? Your options are:
S: Send report (137.7 KB)
V: View report
K: Keep report file for sending later or copying to somewhere else
I: Cancel and ignore future crashes of this program version
C: Cancel
Please choose (S/V/K/I/C):
...