libc6-dev:amd64 overwrites files from libc6:i386 and aborts update when upgrading to mantic

Bug #2039234 reported by Thomas Debesse
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
glibc (Ubuntu)
Fix Released
High
Unassigned
Mantic
Won't Fix
Undecided
Unassigned
Noble
Fix Released
High
Unassigned
ubuntu-release-upgrader (Ubuntu)
Invalid
High
Simon Chopin
Mantic
Invalid
High
Simon Chopin
Noble
Invalid
High
Simon Chopin

Bug Description

This is a bug affecting mantic, apport selected lunar instead of mantic because the bug happens in the middle of the upgrade from lunar to mantic.

I tried to update from lunar to mantic, dpkg aborted with this error:

```
Dépaquetage de libc6-dev-i386 (2.38-1ubuntu6) sur (2.37-0ubuntu2.1) ...
dpkg: erreur de traitement de l'archive /var/cache/apt/archives/libc6-dev-i386_2.38-1ubuntu6_amd64.deb (--unpack) :
 tentative de remplacement de « /usr/include/finclude/math-vector-fortran.h », qui appartient aussi au paquet libc6-dev:amd64 2.37-0ubuntu2.1
```

The message is in French, but the meaning is that dpkg aborts because installing libc6-dev:i386 tries to overwrite files from libc6-dev:amd64.

ProblemType: Bug
DistroRelease: Ubuntu 23.04
Package: libc6 2.38-1ubuntu6
ProcVersionSignature: Ubuntu 6.2.0-33.33-generic 6.2.16
Uname: Linux 6.2.0-33-generic x86_64
NonfreeKernelModules: amddrm_ttm_helper amdttm amdxcp amddrm_buddy amd_sched amdkcl
ApportVersion: 2.26.1-0ubuntu2
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: GNOME
Date: Fri Oct 13 04:13:11 2023
RebootRequiredPkgs: Error: path contained symlinks.
SourcePackage: glibc
UpgradeStatus: No upgrade log present (probably fresh install)
modified.conffile..etc.default.apport:
 # set this to 0 to disable apport, or to 1 to enable it
 # you can temporarily override this with
 # sudo service apport start force_start=1
 enabled=0
mtime.conffile..etc.default.apport: 2018-06-16T17:39:00.798346

CVE References

Revision history for this message
Thomas Debesse (illwieckz) wrote :
tags: added: mantic
description: updated
Simon Chopin (schopin)
Changed in glibc (Ubuntu):
importance: Undecided → High
status: New → Triaged
Revision history for this message
Simon Chopin (schopin) wrote :

The issue isn't because of libc6-dev:i386, which is a multiarch package and should cope just fine with sharing an identical file with its :amd64 counterpart. The issue is in the biarch package libc6-dev-i386:amd64.

What happened is that the fortran header was moved into an arch-specific directory in the -dev packages for the 2.38, and instead the biarch packages inserted a symlink in the generic path. That particular change was picked up when I merged the Debian changes, but I didn't notice the symlink part. What this means is that the 2.38 biarch packages need to declare a Breaks+Replace relationship on the -dev packages << 2.37.

This will be fixed in an upcoming SRU. Meanwhile, to be able to upgrade the easiest thing that comes to mind is to remove the biarch package before upgrade and reinstall afterwards. Sorry for the inconvenience!

Revision history for this message
Thomas Debesse (illwieckz) wrote :

Thanks, for some reason running `apt-get --fix-broken install` multiple times in a row fixed it. I have no explanation.

I got a similar conflict bug with libgutils but this other one is not fixed with multiple `apt-get --fix-broken install`, see bug 2039279 .

description: updated
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote : Re: [Bug 2039234] Re: libc6-dev:amd64 overwrites files from libc6:i386 and aborts update when upgrading to mantic

On Sat, 14 Oct 2023 at 02:40, Thomas Debesse <email address hidden>
wrote:

> Thanks, for some reason running `apt-get --fix-broken install` multiple
> times in a row fixed it. I have no explanation.
>

AIUI this isn't really surprising, there is no problem once all packages
are at their newest versions, we just need to add metadata so that dpkg
unpacks them in the right order.

Simon Chopin (schopin)
Changed in glibc (Ubuntu Noble):
status: Triaged → Fix Committed
Revision history for this message
Simon Chopin (schopin) wrote :

Alright, after a chat with Steve, it makes more sense to handle this via an upgrader quirk than an SRU of glibc in Mantic, although it *is* handled in the package that's been uploaded to Noble.

tags: added: foundations-todo
Changed in glibc (Ubuntu Mantic):
status: New → Triaged
status: Triaged → Won't Fix
Changed in ubuntu-release-upgrader (Ubuntu Mantic):
assignee: nobody → Simon Chopin (schopin)
Changed in ubuntu-release-upgrader (Ubuntu Noble):
assignee: nobody → Simon Chopin (schopin)
Changed in ubuntu-release-upgrader (Ubuntu Mantic):
importance: Undecided → High
Changed in ubuntu-release-upgrader (Ubuntu Noble):
importance: Undecided → High
Changed in ubuntu-release-upgrader (Ubuntu Mantic):
status: New → In Progress
Revision history for this message
Simon Chopin (schopin) wrote :

I'm realizing that I didn't try to reproduce this. After doing so in a container, the issue didn't present itself, presumably because ubuntu-release-upgrader actually uses --force-overwrite by default precisely to avoid these issues.

May I ask how exactly you tried to upgrade?

Changed in ubuntu-release-upgrader (Ubuntu Mantic):
status: In Progress → Incomplete
Simon Chopin (schopin)
Changed in ubuntu-release-upgrader (Ubuntu Noble):
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package glibc - 2.38-3ubuntu1

---------------
glibc (2.38-3ubuntu1) noble; urgency=medium

  * debian/patches/git-updates.diff: update from upstream stable branch
    Dropped changes, superseded by the upstream git updates:
    - debian/patches/CVE-2023-4911.patch: terminate immediately if end of
      input is reached in elf/dl-tunables.c.
    - d/p/u/0001-Fix-leak-in-getaddrinfo-introduced-by-the-fix-for-CV:
      Cherry-picked to fix a regression in one of the previous CVE fixes
  * Merge 2.38-3 from Debian experimental
    Dropped changes, included in Debian:
    - debian/patches/hurd-i386/git-powerpc-longjmp.diff: Fix build after chk
      hidden builtin fix.
  * Drop d/p/lp2032624.patch as advised by upstream.
    Downstream users will have to actually implement those types or stop
    pretending they're GCC. (LP: #2032624)
  * d/p/lp2031495.patch: fix test suite on armhf for -prof variant
    (LP: #2031495)
  * d/control.in/i386: fix math-vector-fortran.h file move (LP: #2039234)

 -- Simon Chopin <email address hidden> Mon, 23 Oct 2023 18:54:07 +0200

Changed in glibc (Ubuntu Noble):
status: Fix Committed → Fix Released
Simon Chopin (schopin)
Changed in ubuntu-release-upgrader (Ubuntu):
status: Incomplete → Invalid
Changed in ubuntu-release-upgrader (Ubuntu Mantic):
status: Incomplete → Invalid
Changed in ubuntu-release-upgrader (Ubuntu Noble):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.