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)
Status tracked in Noble
Mantic
Won't Fix
Undecided
Unassigned
Noble
Fix Committed
High
Unassigned
ubuntu-release-upgrader (Ubuntu)
Status tracked in Noble
Mantic
Incomplete
High
Simon Chopin
Noble
Incomplete
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

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
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.