nvme-stas 2.3-1ubuntu1 autopkgtest hanging on s390x

Bug #2045000 reported by Olivier Gayot
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nvme-stas (Debian)
Fix Released
Unknown
nvme-stas (Ubuntu)
Fix Released
Undecided
Olivier Gayot

Bug Description

On s390x, the test-suite for nvme-stas hangs and then times out:

596s test_clear (test-gtimer.Test.test_clear) ... ok
596s test_new_timer (test-gtimer.Test.test_new_timer) ... ok
596s test_start_timer (test-gtimer.Test.test_start_timer) ... ok
596s test_AsyncTask (test-gutil.GutilUnitTest.test_AsyncTask) ... ok
596s test__data_matches_ip (test-iputil.Test.test__data_matches_ip) ... ok
596s test_get_interface (test-iputil.Test.test_get_interface)
10600s Check that get_interface() returns the right info ...

I am able to reproduce the issue consistently on a s390x host.

The function that is hanging is the following:

> def net_if_addrs():
> with socket.socket(socket.AF_NETLINK, socket.SOCK_RAW) as sock:
> sock.sendall(GETADDRCMD)
> nlmsg = sock.recv(8192) # This call blocks forever

where:

> GETADDRCMD = _nlmsg(RTM_GETADDR, NLM_F_REQUEST | NLM_F_ROOT, _ifaddrmsg())

and

> def _ifaddrmsg(family=0, prefixlen=0, flags=0, scope=0, index=0):
> '''Implement this C struct:
> struct ifaddrmsg {
> __u8 ifa_family;
> __u8 ifa_prefixlen; /* The prefix length */
> __u8 ifa_flags; /* Flags */
> __u8 ifa_scope; /* Address scope */
> __u32 ifa_index; /* Link index */
> };
> '''
> return struct.pack('<BBBBL', family, prefixlen, flags, scope, index)

This is presumably an endianness issue since s390x uses big-endian.

Olivier Gayot (ogayot)
tags: added: proposed-migration
tags: added: update-excuse
removed: proposed-migration
Olivier Gayot (ogayot)
Changed in nvme-stas (Ubuntu):
assignee: nobody → Olivier Gayot (ogayot)
Revision history for this message
Olivier Gayot (ogayot) wrote (last edit ):

Attaching debdiff. The fix was forwarded upstream [1] and to Debian.

PPA:
[ogayot/noble-proposed](https://launchpad.net/~ogayot/+archive/ubuntu/noble-proposed)

Successful autopkgtest run on s390x against PPA [2].

NOTE I've seen another udev test (test-case 1 with IPv6) fail when running autopkgtest on a canonistack instance. This does not seem related to s390x (also reproduced on ppc64el) and it seems to pass fine on the autopkgtest infrastructure. So I'll consider it something for another day... I've opened a new issue upstream to track this one [3]

FAIL: test__cid_matches_tid (__main__.Test.test__cid_matches_tid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/autopkgtest.Jnsvlo/build.2IB/src/test/test-udev.py", line 525, in test__cid_matches_tid
    self.assertEqual(
AssertionError: True != False : Test Case 1 failed

[1] https://github.com/linux-nvme/nvme-stas/pull/406
[2] https://autopkgtest.ubuntu.com/results/autopkgtest-noble-ogayot-noble-proposed/noble/s390x/n/nvme-stas/20231128_113657_357b1@/log.gz
[3] https://github.com/linux-nvme/nvme-stas/issues/407

Revision history for this message
Olivier Gayot (ogayot) wrote :
Changed in nvme-stas (Debian):
status: Unknown → New
Revision history for this message
Lena Voytek (lvoytek) wrote :

Thanks for the patch Olivier! I see upstream has accepted it too. The changes and patch formatting all look good to me. I prepared the upload with rich history using git-ubuntu, and will sponsor now.

Olivier Gayot (ogayot)
tags: removed: update-excuse
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nvme-stas - 2.3-1ubuntu3

---------------
nvme-stas (2.3-1ubuntu3) noble; urgency=medium

  * Skip mac2iface test for esoteric network interfaces (LP: #2045690)
  * Add upstream patch to fix udev test for esoteric network interfaces

 -- Olivier Gayot <email address hidden> Tue, 05 Dec 2023 21:04:32 +0100

Changed in nvme-stas (Ubuntu):
status: New → Fix Released
Changed in nvme-stas (Debian):
status: New → Fix Released
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.