Your message dated Wed, 05 Feb 2025 15:49:46 +0000
with message-id <e1tfhes-007jn1...@fasolo.debian.org>
and subject line Bug#1095202: fixed in nfs-utils 1:2.8.2-2
has caused the Debian Bug report #1095202,
regarding nfs-common: file loss in upgrade due to /usr-move (DEP17 P1)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1095202: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1095202
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: nfs-common
Version: 1:2.8.2-2~exp1
Severity: serious
Justification: file loss in upgrade scenario
Tags: patch
User: helm...@debian.org
Usertags: dep17p1

Hi Salvatore,

thanks for raising nfs-common ahead of upload and going via
experimental. Indeed, dumat flags
/usr/lib/systemd/system/nfs-blkmap.service as a file possibly lost in an
upgrade. To experience this loss, you should install nfs-kernel-server
from bookworm and then unpack nfs-common from experimental before
upgrading nfs-kernel-server.

I am proposing a composite mitigation. Upgrading Breaks+Replaces to
Conflicts mostly prevents concurrent unpacks except in rare
circumstances. Indeed, my testing reveals that this causes apt to
upgrade nfs-kernel-server before nfs-common in one of the relevant
scenarios. Rarely, dpkg may unpack nfs-common before nfs-kernel-server
despite the declared conflict. In this situation, a protective diversion
will prevent the file loss.

I am attaching a patch and my test cases for your convenience. If you
replace the package version with the one from the archive, you should
see it fail.

Helmut
diff --minimal -Nru nfs-utils-2.8.2/debian/changelog 
nfs-utils-2.8.2/debian/changelog
--- nfs-utils-2.8.2/debian/changelog    2025-02-03 18:47:52.000000000 +0100
+++ nfs-utils-2.8.2/debian/changelog    2025-02-04 21:19:43.000000000 +0100
@@ -1,3 +1,11 @@
+nfs-utils (1:2.8.2-2~exp1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Mitigate file loss in concurrent canonicalization and move between
+    packages. (DEP17 P1 M8, Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 04 Feb 2025 21:19:43 +0100
+
 nfs-utils (1:2.8.2-2~exp1) experimental; urgency=medium
 
   * Move nfs-blkmap.service to nfs-common package.
diff --minimal -Nru nfs-utils-2.8.2/debian/control 
nfs-utils-2.8.2/debian/control
--- nfs-utils-2.8.2/debian/control      2025-02-03 18:47:52.000000000 +0100
+++ nfs-utils-2.8.2/debian/control      2025-02-04 21:19:38.000000000 +0100
@@ -37,9 +37,8 @@
 Recommends: python3
 Suggests: open-iscsi, watchdog
 Provides: nfs-client
-Conflicts: nfs-client
-Replaces: nfs-client, nfs-kernel-server (<< 1:2.8.2-2~exp1~)
-Breaks: nfs-kernel-server (<< 1:2.8.2-2~exp1~)
+Conflicts: nfs-client, nfs-kernel-server (<< 1:2.8.2-2~exp1~)
+Replaces: nfs-client
 Description: NFS support files common to client and server
  Use this package on any machine that uses NFS, either as client or
  server.  Programs included: lockd, statd, showmount, nfsstat, gssd,
diff --minimal -Nru nfs-utils-2.8.2/debian/nfs-common.lintian-overrides 
nfs-utils-2.8.2/debian/nfs-common.lintian-overrides
--- nfs-utils-2.8.2/debian/nfs-common.lintian-overrides 2025-02-03 
18:47:52.000000000 +0100
+++ nfs-utils-2.8.2/debian/nfs-common.lintian-overrides 2025-02-04 
21:19:43.000000000 +0100
@@ -3,3 +3,8 @@
 # lintian doesn't notice that
 nfs-common: no-manual-page [usr/sbin/mount.nfs4]
 nfs-common: no-manual-page [usr/sbin/umount.nfs4]
+# begin-remove-after: released:trixie
+# DEP17 P1 M8: Protective diversion for moved file
+nfs-common: diversion-for-unknown-file lib/systemd/system/nfs-blkmap.service 
[preinst:*]
+nfs-common: systemd-diversion lib/systemd/system/nfs-blkmap.service [preinst:*]
+# end-remove-after: released:trixie
diff --minimal -Nru nfs-utils-2.8.2/debian/nfs-common.postinst 
nfs-utils-2.8.2/debian/nfs-common.postinst
--- nfs-utils-2.8.2/debian/nfs-common.postinst  2025-02-03 18:47:52.000000000 
+0100
+++ nfs-utils-2.8.2/debian/nfs-common.postinst  2025-02-04 21:19:43.000000000 
+0100
@@ -4,6 +4,13 @@
 
 case "$1" in
     configure)
+        # begin-remove-after: released:trixie
+        # DEP17 P1 M8: Protective diversion for moved file
+        if dpkg --compare-versions "$2" lt 1:2.8.2-2~exp1~; then
+            dpkg-divert --remove --no-rename --divert 
/lib/systemd/system/nfs-blkmap.service.usr-is-merged 
/lib/systemd/system/nfs-blkmap.service
+        fi
+
+        # end-remove-after: released:trixie
         ucf --three-way /usr/share/nfs-common/conffiles/idmapd.conf 
/etc/idmapd.conf
         ucf --three-way /usr/share/nfs-common/conffiles/nfs-common.default 
/etc/default/nfs-common
         ucf --three-way /usr/share/nfs-common/conffiles/nfs.conf /etc/nfs.conf
diff --minimal -Nru nfs-utils-2.8.2/debian/nfs-common.postrm 
nfs-utils-2.8.2/debian/nfs-common.postrm
--- nfs-utils-2.8.2/debian/nfs-common.postrm    2025-02-03 18:47:52.000000000 
+0100
+++ nfs-utils-2.8.2/debian/nfs-common.postrm    2025-02-04 21:19:43.000000000 
+0100
@@ -24,4 +24,12 @@
            
        dpkg-statoverride --remove /sbin/mount.nfs || true
        ;;
+    # begin-remove-after: released:trixie
+    abort-upgrade)
+        # DEP17 P1 M8: Protective diversion for moved file
+        if dpkg --compare-versions "$2" lt 1:2.8.2-2~exp1~; then
+            dpkg-divert --remove --no-rename --divert 
/lib/systemd/system/nfs-blkmap.service.usr-is-merged 
/lib/systemd/system/nfs-blkmap.service
+        fi
+       ;;
+    # end-remove-after: released:trixie
 esac
diff --minimal -Nru nfs-utils-2.8.2/debian/nfs-common.preinst 
nfs-utils-2.8.2/debian/nfs-common.preinst
--- nfs-utils-2.8.2/debian/nfs-common.preinst   2025-02-03 18:47:52.000000000 
+0100
+++ nfs-utils-2.8.2/debian/nfs-common.preinst   2025-02-04 21:19:43.000000000 
+0100
@@ -12,4 +12,11 @@
     fi
 fi
 
+# begin-remove-after: released:trixie
+# DEP17 P1 M8: Protective diversion for moved file
+if [ "$1" = install ] || { [ "$1" = upgrade ] && dpkg --compare-versions "$2" 
lt 1:2.8.2-2~exp1~; }; then
+    dpkg-divert --add --no-rename --divert 
/lib/systemd/system/nfs-blkmap.service.usr-is-merged 
/lib/systemd/system/nfs-blkmap.service
+fi
+# end-remove-after: released:trixie
+
 #DEBHELPER#

Attachment: test.sh
Description: Bourne shell script


--- End Message ---
--- Begin Message ---
Source: nfs-utils
Source-Version: 1:2.8.2-2
Done: Salvatore Bonaccorso <car...@debian.org>

We believe that the bug you reported is fixed in the latest version of
nfs-utils, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1095...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Salvatore Bonaccorso <car...@debian.org> (supplier of updated nfs-utils package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Wed, 05 Feb 2025 16:35:13 +0100
Source: nfs-utils
Architecture: source
Version: 1:2.8.2-2
Distribution: unstable
Urgency: medium
Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
Changed-By: Salvatore Bonaccorso <car...@debian.org>
Closes: 1072611 1095202
Changes:
 nfs-utils (1:2.8.2-2) unstable; urgency=medium
 .
   [ Helmut Grohne ]
   * Mitigate file loss in concurrent canonicalization and move between
     packages. (DEP17 P1 M8, Closes: #1095202)
 .
   [ Salvatore Bonaccorso ]
   * Upload to unstable
 .
 nfs-utils (1:2.8.2-2~exp1) experimental; urgency=medium
 .
   * Move nfs-blkmap.service to nfs-common package.
     Add Replaces and Breaks relation for nfs-common package on the
     nfs-kernel-server package with (<< 1:2.8.2-2~exp1~) constraints to
     properly take over the nfs-blkmap.service service file.
     (Closes: #1072611)
   * debian/control: Remove Steve Langasek from Uploaders
Checksums-Sha1: 
 1439c9c3d19dd8bed23281c501ed44ec3284ef84 2645 nfs-utils_2.8.2-2.dsc
 3898ed06229a78d42dafac79a3b40fcb0280c4bb 49716 nfs-utils_2.8.2-2.debian.tar.xz
Checksums-Sha256: 
 291f00b2e3bd60e0ec1ca26e464401c016b229cd71a583294a3dbab91e71d86c 2645 
nfs-utils_2.8.2-2.dsc
 a2d1fb69371ee8c2f871102290a372951ccd08280e4b49816e5737d91413a165 49716 
nfs-utils_2.8.2-2.debian.tar.xz
Files: 
 31094c0d3f28f939344f359f87e15cf9 2645 net optional nfs-utils_2.8.2-2.dsc
 2669ff516d40db716a48e13bf754de7b 49716 net optional 
nfs-utils_2.8.2-2.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQKmBAEBCgCQFiEERkRAmAjBceBVMd3uBUy48xNDz0QFAmejhnFfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDQ2
NDQ0MDk4MDhDMTcxRTA1NTMxRERFRTA1NENCOEYzMTM0M0NGNDQSHGNhcm5pbEBk
ZWJpYW4ub3JnAAoJEAVMuPMTQ89EjykQAIlxEoxrvb1LvG51h84zg+WghTymUN95
/uWk9EjDNTXVdYAt9dVHZ0pmf1eHAsxnVLjR6TDJnOD6moQigTSDaNjseUQjkMze
g3GMgss8VwB3PDeGD+Q7UXUJGw3ZkKphZvy7zfqjqbEd+3zwFobjabgNIzEp8GRS
iKRywISPkuZ+ZeHzhsIyrf8NlIvqAOW1uVHd3w057NUwGauqkojLelSHpvRn95J8
QKonbrfTTYCR+QOl4+VeH9ZrCMc5c6ib77VLDoEcq30CYJyuedW6oP7nH+d1X69s
hA4yjfVPxVY6C96NGMfHrufUwJKEK8hnjTqkXVztz1MzXDoJHG5BUq8+3RFEvDNU
4feArDEr368yVRyc92hGnXSyaem3H9KwTKePG+62WZFcG3G/9IZ2jub5XHbegpPe
Hq4yq7tlTXetZv1DMgUFV6kEpsTMPGD17NCt1/MOsK3xnYvFCoc6a9PQBKLcakzk
X3bKO69THWcAoVEkPbFhwp4472IuBa5YuJaMcoKzaujoYIX/7CZSdjKEMDqbZwWM
IpJtlfKTXBKpE3WduYvWBASJIR8DBhz2VynwJ5/EFZH4Ni8gfT1awUJ5Qln3hGQw
qeun8M+w+GEVyuEBlOCf8wD9AF8H/kQhLSd6u7Vr3fmMBix57XHXXn+Bpu9SWEZ5
gGh9j3AlIw2S
=fxdX
-----END PGP SIGNATURE-----

Attachment: pgpX5NeZUVLnZ.pgp
Description: PGP signature


--- End Message ---

Reply via email to