Your message dated Sun, 10 Dec 2023 11:55:16 +0000
with message-id <[email protected]>
and subject line Bug#1057530: fixed in nvme-stas 2.3.1-1
has caused the Debian Bug report #1057530,
regarding nvme-stas: autopkgtest fail when runners have esoteric network
interfaces
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 [email protected]
immediately.)
--
1057530: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1057530
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: nvme-stas
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu noble ubuntu-patch
Dear Maintainer,
When an autopkgtest runner has esoteric network interfaces configured,
the test-suite (i.e., test-udev.py and/or test-iputil.py) is likely to
fail.
The following types of interfaces are known to cause failures on
autopkgtest runners in Ubuntu:
* vlan
* gre
* dummy
* veth
I am not sure if Debian autopkgtest runners would be affected but the
test suite is a bit fragile at the moment, so I think the patches would
make sense.
NOTE: Ubuntu is ahead of Debian by two patches, so the autopkgtest
failures might not unravel until the following are addressed:
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1054533
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1057031
In Ubuntu, the attached patch was applied to achieve the following:
* Skip mac2iface test for esoteric network interfaces (LP: #2045690)
* Add upstream patch to fix udev test for esoteric network interfaces
Thanks for considering the patch.
-- System Information:
Debian Release: trixie/sid
APT prefers mantic-updates
APT policy: (500, 'mantic-updates'), (500, 'mantic-security'), (500, 'mantic')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.1.0-16-generic (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru
nvme-stas-2.3/debian/patches/fix-test-udev-with-dummy-interfaces.patch
nvme-stas-2.3/debian/patches/fix-test-udev-with-dummy-interfaces.patch
--- nvme-stas-2.3/debian/patches/fix-test-udev-with-dummy-interfaces.patch
1970-01-01 01:00:00.000000000 +0100
+++ nvme-stas-2.3/debian/patches/fix-test-udev-with-dummy-interfaces.patch
2023-12-05 21:04:32.000000000 +0100
@@ -0,0 +1,26 @@
+Description: Fix test-udev with dummy interfaces
+Author: Martin Belanger <[email protected]>
+Origin: upstream,
https://github.com/linux-nvme/nvme-stas/commit/371c1e875a9a660adca241265e4cd460ee7e5e5c
+Bug: https://github.com/linux-nvme/nvme-stas/issues/407
+Last-Update: 2023-12-05
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+diff --git a/test/test-udev.py b/test/test-udev.py
+index ba484e0..9621edc 100755
+--- a/test/test-udev.py
++++ b/test/test-udev.py
+@@ -295,6 +295,11 @@ class Test(unittest.TestCase):
+ def test__cid_matches_tid(self):
+ ifaces = iputil.net_if_addrs()
+ for ifname, addrs in self.ifaces.items():
++ # <ifaces> contains a subset of the interfaces found in
<self.ifaces>.
++ # So, let's make sure that we only test with the interfaces found
in both.
++ if ifname not in ifaces:
++ continue
++
+ ##############################################
+ # IPV4
+
+--
+2.40.1
+
diff -Nru nvme-stas-2.3/debian/patches/series
nvme-stas-2.3/debian/patches/series
--- nvme-stas-2.3/debian/patches/series 2023-11-28 11:01:46.000000000 +0100
+++ nvme-stas-2.3/debian/patches/series 2023-12-05 21:04:32.000000000 +0100
@@ -1,3 +1,5 @@
fix-test-libnvme-version.patch
fix-test-udev-failing-multiple-IPv6.patch
fix-iputil-endianness-issue.patch
+skip-mac2iface-test-for-esoteric-interfaces.patch
+fix-test-udev-with-dummy-interfaces.patch
diff -Nru
nvme-stas-2.3/debian/patches/skip-mac2iface-test-for-esoteric-interfaces.patch
nvme-stas-2.3/debian/patches/skip-mac2iface-test-for-esoteric-interfaces.patch
---
nvme-stas-2.3/debian/patches/skip-mac2iface-test-for-esoteric-interfaces.patch
1970-01-01 01:00:00.000000000 +0100
+++
nvme-stas-2.3/debian/patches/skip-mac2iface-test-for-esoteric-interfaces.patch
2023-12-05 21:04:32.000000000 +0100
@@ -0,0 +1,70 @@
+Description: Skip mac2iface test for esoteric interfaces
+ mac2iface takes a MAC address as argument and returns the corresponding
+ interface (if any).
+ The mac2iface tests will however invoke mac2iface with invalid MAC addresses
+ when esoteric network interfaces are present on the system. As an example,
+ armhf autopkgtest runners in Ubuntu have gre interfaces configured so the
+ test-suite fails.
+ .
+ We now ensure that the test-suite calls mac2iface with only valid MAC
+ addresses.
+ .
+ Furthermore, sometimes the same MAC address is assigned to more than one
+ interface on the system (this is true for VLAN interfaces for instance). This
+ confuses mac2iface, which returns only the first match. This scenario is
+ possibly more of a nvme-stas bug than a test-suite bug, but for now we will
+ just skip the interfaces that have a duplicate MAC address.
+Author: Olivier Gayot <[email protected]>
+Bug-Ubuntu: https://launchpad.net/bugs/2045690
+Forwarded: https://github.com/linux-nvme/nvme-stas/pull/411
+Last-Update: 2023-12-05
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/test/test-iputil.py
++++ b/test/test-iputil.py
+@@ -43,11 +43,41 @@
+ self.assertEqual('', iputil.get_interface(ifaces, ''))
+ self.assertEqual('', iputil.get_interface(ifaces, None))
+
++ @staticmethod
++ def _is_ok_for_mac2iface(iface) -> bool:
++ ''' mac2iface can only work with interfaces that have a proper MAC
++ address. One can use this function to filter out other interfaces
++ configured on the system. '''
++ if iface['link_type'] != 'ether':
++ # Some esoteric interface types (e.g., gre) use the address
++ # field to store something that is not a MAC address. Skip
++ # them.
++ return False
++ if 'address' not in iface:
++ return False
++ if iface['address'] == '00:00:00:00:00:00':
++ # All 0's is an invalid MAC address so do not bother.
++ # In practice, it often appears as the address of the loopback
++ # interface but it can also appear for other things like a gretap
++ # or erspan interface.
++ return False
++ return True
++
+ def test_mac2iface(self):
+- for iface in self.ifaces:
+- address = iface.get('address', None)
+- if address:
+- self.assertEqual(iface['ifname'], iputil.mac2iface(address))
++ # We only test the interfaces that have a MAC address, and a valid
one.
++ candidate_ifaces = [iface for iface in self.ifaces if
self._is_ok_for_mac2iface(iface)]
++
++ for iface in candidate_ifaces:
++ if len([x for x in candidate_ifaces if x['address'] ==
iface['address']]) >= 2:
++ # We need to be careful, sometimes we can have the same MAC
address
++ # on multiple interfaces. This happens with VLAN interfaces
for
++ # instance. mac2iface will obviously be confused when dealing
with
++ # those so let's skip the interfaces that have duplicate MAC.
++ logging.warning('[%s] is not the only interface with address
[%s]',
++ iface['ifname'], iface['address'])
++ continue
++
++ self.assertEqual(iface['ifname'],
iputil.mac2iface(iface['address']))
+
+ def test_remove_invalid_addresses(self):
+ good_tcp = trid.TID({'transport': 'tcp', 'traddr': '1.1.1.1',
'subsysnqn': '', 'trsvcid': '8009'})
--- End Message ---
--- Begin Message ---
Source: nvme-stas
Source-Version: 2.3.1-1
Done: Daniel Baumann <[email protected]>
We believe that the bug you reported is fixed in the latest version of
nvme-stas, 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 [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Daniel Baumann <[email protected]> (supplier of updated
nvme-stas 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 [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Sun, 10 Dec 2023 11:42:55 +0100
Source: nvme-stas
Architecture: source
Version: 2.3.1-1
Distribution: sid
Urgency: medium
Maintainer: Daniel Baumann <[email protected]>
Changed-By: Daniel Baumann <[email protected]>
Closes: 1054533 1057031 1057530
Changes:
nvme-stas (2.3.1-1) sid; urgency=medium
.
* Uploading to sid.
* Merging upstream version 2.3.1: - properly handles big-endian data in
`iputils.py` (Closes: #1057031).
* Adding patch from upstream to fix udev tests with dummy interfaces,
thanks to Olivier Gayot <[email protected]> (Closes:
#1057530).
* Adding patch from upstream to fix tests with esoteric interface names,
thanks to Olivier Gayot <[email protected]> (Closes:
#1057530).
* Adding nvme-cli to autopkg depends, thanks to Olivier Gayot
<[email protected]> (Closes: #1054533).
Checksums-Sha1:
7346116cfc61434119dc8740380e47c574646c68 2275 nvme-stas_2.3.1-1.dsc
04190583049b555ffd0f0a090155e301553392d5 323696 nvme-stas_2.3.1.orig.tar.xz
7b036ab95906aee855a7c0d481d629d21f1a603b 4744 nvme-stas_2.3.1-1.debian.tar.xz
ac7b23208cd6c305a8a0d3ee2347ae9e1b107a0d 7800 nvme-stas_2.3.1-1_amd64.buildinfo
Checksums-Sha256:
72e1241a446b50a655b82038ff8d8c9fd76d687662ab4e81d8892c7b8811991b 2275
nvme-stas_2.3.1-1.dsc
0f9664d1d1fc119ffcc3792582026ee3ccbab15b944d7d055b56979cb5ea6449 323696
nvme-stas_2.3.1.orig.tar.xz
157bf7dd144e8f8c160475576c05d4f4464713458d5162db7e7520b51cec9dcf 4744
nvme-stas_2.3.1-1.debian.tar.xz
74ec8d2b8a1a62705cd9a850204f9551239557c591613cf1580b057ef135006e 7800
nvme-stas_2.3.1-1_amd64.buildinfo
Files:
1508607c69a73b38e7177e1592176b2c 2275 net optional nvme-stas_2.3.1-1.dsc
ca5e152780abed8945623af9daf23af2 323696 net optional
nvme-stas_2.3.1.orig.tar.xz
eadcde7d5c40d72903cf085ab48a0da0 4744 net optional
nvme-stas_2.3.1-1.debian.tar.xz
0e44d7b7e11c304a0b6ec33110df034f 7800 net optional
nvme-stas_2.3.1-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEgTbtJcfWfpLHSkKSVc8b+YaruccFAmV1lokACgkQVc8b+Yar
uccgZQ/7BADtF9o7EPf3WzZgPaAH72awqX7g8s2ZG2nlVOGsQINSVI/AfidV8Pll
E9yOdpJcsm8sgFGoXLxjN6uvvdL4RAIBY6Es5WIPW6yJeVVB74tKGp8LkAioXdO3
S422FhrQITQUQe2lkbxX8qBVJOAXTEnHXdgtxeR6rmVh9O6pG0fQt09wkJzqUw2b
BBDhzotQppCSnWNxJv9VuhoMzK8JmN5DgcnnX8fHuzxtbVRg4p117R770TV4YFin
GEbmOAst+SRnI2NRH+HC+hYm5lxdpueKMl9OxTy1fQ2IpKwT5A/nwJCpstQnQqXK
AUZ7HAvuC3ViV/TTo+/E+7OFGehPqhKi+7JSKSulYnobvtUNdhIWzr2iAFY+gd4k
vFCKqRUXuH97QmnMZUDIGnd5gaipTq7/cNhC9ndl7o9bZo6AoMAby3KJsPuNzG0Z
PHmSMjzmEoowTWwhSx8JW7aW+3a6joj29BKrM7S9Qo8WEtpNYnC5Vhmraikwg6hL
ltw3pN21Dwvn42mE3VPrQkjSMtQfRfOyj8K+1Uc8054Jrj9fBKE1WdL7yksUdTso
39hSLeKjeYPqZt/W1FO/vB2+TBmaOmx5YdnSM26riWzkXb9bEhNWeRuWDgOv9yC1
sg6o8PtbJP2AdRe+wM8ngqikmWyD0zZkDXaLCNwRsB35xQ2NPNw=
=KeCq
-----END PGP SIGNATURE-----
--- End Message ---