[Bug 1673247] Re: package snapd 2.23.1 failed to install/upgrade: trying to overwrite '/etc/apparmor.d/usr.lib.snapd.snap-confine', which is also in package snap-confine 2.23.1

Tom Chiverton 1673247 at bugs.launchpad.net
Sun Jun 16 14:49:03 UTC 2024


This still happens ?

Unpacking snapd (2.63+24.04) over (2.62+24.04build1) ...
Setting up snapd (2.63+24.04) ...
Installing new version of config file /etc/apparmor.d/usr.lib.snapd.snap-confine.real ...
snapd.failure.service is a disabled or a static unit not running, not starting it.
snapd.snap-repair.service is a disabled or a static unit not running, not starting it.
Failed to restart snapd.mounts-pre.target: Operation refused, unit snapd.mounts-pre.target may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status snapd.mounts-pre.target' for details.
Could not execute systemctl:  at /usr/bin/deb-systemd-invoke line 148.
Processing triggers for man-db (2.12.0-4build2) ...
Processing triggers for dbus (1.14.10-4ubuntu4) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for desktop-file-utils (0.27-2build1) ...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
falken at frame:~$ systemctl status snapd.mounts-pre.target
● snapd.mounts-pre.target - Mounting snaps
     Loaded: loaded (/usr/lib/systemd/system/snapd.mounts-pre.target; static)
     Active: active since Sun 2024-06-16 14:29:38 BST; 1h 14min ago

Notice: journal has been rotated since unit was started, output may be
incomplete.


$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04 LTS"

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to dpkg in Ubuntu.
https://bugs.launchpad.net/bugs/1673247

Title:
  package snapd 2.23.1 failed to install/upgrade: trying to overwrite
  '/etc/apparmor.d/usr.lib.snapd.snap-confine', which is also in package
  snap-confine 2.23.1

Status in snapd:
  Won't Fix
Status in dpkg package in Ubuntu:
  In Progress
Status in snapd package in Ubuntu:
  In Progress
Status in dpkg source package in Trusty:
  Confirmed
Status in snapd source package in Trusty:
  In Progress
Status in dpkg source package in Xenial:
  Confirmed
Status in snapd source package in Xenial:
  Confirmed
Status in dpkg source package in Yakkety:
  Invalid
Status in snapd source package in Yakkety:
  Invalid
Status in dpkg source package in Zesty:
  Confirmed
Status in snapd source package in Zesty:
  Confirmed

Bug description:
  When the ubuntu installer runs it has an option to download updates during the install. When this happens snapd/snap-confine 2.22.6 are installed on /target. The upgrade brings in snapd/snap-confine 2.23.1 which has a conffile in /etc/apparmor.d/usr.lib.snapd.snap-confine. The snapd packages declares a breaks/replaces: snapd-confine (<< 2.23) which works correctly on regular upgrades. However it does fail on upgrades with the "--root=/target" that is used by ubiquity. After a bit of debugging it turns out the reason is that
  src/archives.c:tarobject() has a check for obsolete conffiles in the block
  around "Is the file an obsolete conffile ...". There is a stat() here that
  checks that the conff->name and the fnamevb are the same file. This check
  fails to take the instdir into account and therefore the loop does not
  continue but falls through to the "does_replace()" checks.

  --------------------------------------------
  Snap 2.23.1 fails to upgrade from 2.21.

  Known facts:
  - reporters (and apport) indicate it fails during the install via the live-cd
  - not reproducible so far on an already installed system
  - breaks/replaces of snapd are correct
  - When adding "xenial-proposed" to apt-setup in ubiquity and installing

  Cause:
  - when ubiquity runs it uses "dpkg --root=/target --unpack ..." - however when doing the conffile checking dpkg does not handle the "--root" parameter correctly and checks something against "/" instead of "/target".

  ---------------------------------------------
  I really don't know what else to add...

  ProblemType: Package
  DistroRelease: Ubuntu 16.04
  Package: snapd 2.23.1
  ProcVersionSignature: Ubuntu 4.8.0-36.36~16.04.1-generic 4.8.11
  Uname: Linux 4.8.0-36-generic x86_64
  ApportVersion: 2.20.1-0ubuntu2.5
  Architecture: amd64
  CasperVersion: 1.376.2
  Date: Wed Mar 15 16:03:33 2017
  DuplicateSignature:
   package:snapd:2.23.1
   Unpacking snapd (2.23.1) over (2.21) ...
   dpkg: error processing archive /target/var/cache/apt/archives/snapd_2.23.1_amd64.deb (--unpack):
    trying to overwrite '/etc/apparmor.d/usr.lib.snapd.snap-confine', which is also in package snap-confine 2.23.1
  ErrorMessage: trying to overwrite '/etc/apparmor.d/usr.lib.snapd.snap-confine', which is also in package snap-confine 2.23.1
  LiveMediaBuild: Ubuntu-GNOME 16.04.2 LTS "Xenial Xerus" - Release amd64 (20170215)
  RelatedPackageVersions:
   dpkg 1.18.4ubuntu1.1
   apt  1.2.19
  SourcePackage: snapd
  Title: package snapd 2.23.1 failed to install/upgrade: trying to overwrite '/etc/apparmor.d/usr.lib.snapd.snap-confine', which is also in package snap-confine 2.23.1
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/snapd/+bug/1673247/+subscriptions




More information about the foundations-bugs mailing list