Source: pyroute2 Version: 0.8.1-2 Severity: serious User: debian-ci@lists.debian.org Usertags: regression X-Debbugs-CC: debian-s390@lists.debian.org User: debian-s390@lists.debian.org Usertags: s390x Control: -1 blocks 1119644 Dear maintainer(s),With a recent upload of pyroute2 the autopkgtest of pyroute2 fails in testing when that autopkgtest is run with the binary packages of pyroute2 from unstable on s390x. It passes when run with only packages from testing. In tabular form:
pass fail
pyroute2 from testing 0.8.1-2
all others from testing from testing
I copied some of the output at the bottom of this report.
Currently this regression is blocking the migration to testing [1]. Can
you please investigate the situation and fix it?
More information about this bug and the reason for filing it can be found on https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation Paul [1] https://qa.debian.org/excuses.php?package=pyroute2 https://ci.debian.net/data/autopkgtest/testing/s390x/p/pyroute2/66417437/log.gz al(sample, marshal): 96s > return run_using_marshal(sample, marshal) 96s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^96s 96s tests/test_unit/test_nlmsg/test_marshal.py:48: 96s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 96s 96s sample = 'test_unit/test_nlmsg/iw_info_rsp.dump' 96s marshal = <pyroute2.netlink.nl80211.MarshalNl80211 object at 0x3ffa9c10980>
96s 96s def run_using_marshal(sample, marshal): 96s messages, data = load_sample(sample) 96s parsed = tuple(marshal.parse(data)) 96s > assert len(parsed) == len(messages) 96s E AssertionError: assert 0 == 1 96s E + where 0 = len(())96s E + and 1 = len([{'attrs': [['NL80211_ATTR_IFINDEX', 3], ['NL80211_ATTR_IFNAME', 'wlo1'], ['NL80211_ATTR_WIPHY', 0], ['NL80211_ATTR_IFTYPE', 2], ['NL80211_ATTR_WDEV', 1], ['NL80211_ATTR_MAC', 'a4:4e:31:43:1c:7d'], ...], 'cmd': 7, 'event': 'NL80211_CMD_NEW_INTERFACE', 'header': {'error': None, 'flags': 0, 'length': 88, 'pid': 771783666, ...}, ...}])
96s 96s tests/test_unit/test_nlmsg/test_marshal.py:31: AssertionError96s _________ test_marshal[test_unit/test_nlmsg/iw_scan_rsp.dump-marshal3] _________
96s 96s sample = 'test_unit/test_nlmsg/iw_scan_rsp.dump'96s marshal = <pyroute2.netlink.nl80211.MarshalNl80211 object at 0x3ffa9cf4550>
96s 96s @pytest.mark.parametrize(
96s 'sample,marshal',
96s (
96s ('test_unit/test_nlmsg/addrmsg_ipv4.dump', MarshalRtnl()),
96s ('test_unit/test_nlmsg/gre_01.dump', MarshalRtnl()),
96s ('test_unit/test_nlmsg/iw_info_rsp.dump',
MarshalNl80211()),
96s ('test_unit/test_nlmsg/iw_scan_rsp.dump',
MarshalNl80211()),
96s ), 96s ) 96s def test_marshal(sample, marshal): 96s > return run_using_marshal(sample, marshal) 96s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^96s 96s tests/test_unit/test_nlmsg/test_marshal.py:48: 96s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 96s 96s sample = 'test_unit/test_nlmsg/iw_scan_rsp.dump' 96s marshal = <pyroute2.netlink.nl80211.MarshalNl80211 object at 0x3ffa9cf4550>
96s 96s def run_using_marshal(sample, marshal): 96s messages, data = load_sample(sample) 96s parsed = tuple(marshal.parse(data)) 96s > assert len(parsed) == len(messages) 96s E AssertionError: assert 0 == 4 96s E + where 0 = len(())96s E + and 4 = len(({'attrs': [('NL80211_ATTR_GENERATION', 7), ('NL80211_ATTR_IFINDEX', 11), ('NL80211_ATTR_WDEV', 1), ('NL80211_ATTR_BSS', {'attrs': [(...), (...), (...), (...), (...), (...), ...]})], 'cmd': 34, 'event': 'NL80211_CMD_NEW_SCAN_RESULTS', 'header': {'error': None, 'flags': 2, 'length': 472, 'pid': 608, ...}, ...}, {'attrs': [('NL80211_ATTR_GENERATION', 7), ('NL80211_ATTR_IFINDEX', 11), ('NL80211_ATTR_WDEV', 1), ('NL80211_ATTR_BSS', {'attrs': [(...), (...), (...), (...), (...), (...), ...]})], 'cmd': 34, 'event': 'NL80211_CMD_NEW_SCAN_RESULTS', 'header': {'error': None, 'flags': 2, 'length': 464, 'pid': 608, ...}, ...}, {'attrs': [('NL80211_ATTR_GENERATION', 7), ('NL80211_ATTR_IFINDEX', 11), ('NL80211_ATTR_WDEV', 1), ('NL80211_ATTR_BSS', {'attrs': [(...), (...), (...), (...), (...), (...), ...]})], 'cmd': 34, 'event': 'NL80211_CMD_NEW_SCAN_RESULTS', 'header': {'error': None, 'flags': 2, 'length': 480, 'pid': 608, ...}, ...}, {'attrs': [('NL80211_ATTR_GENERATION', 7), ('NL80211_ATTR_IFINDEX', 11), ('NL80211_ATTR_WDEV', 1), ('NL80211_ATTR_BSS', {'attrs': [(...), (...), (...), (...), (...), (...), ...]})], 'cmd': 34, 'event': 'NL80211_CMD_NEW_SCAN_RESULTS', 'header': {'error': None, 'flags': 2, 'length': 480, 'pid': 608, ...}, ...}))
96s 96s tests/test_unit/test_nlmsg/test_marshal.py:31: AssertionError96s _______ test_custom_key[test_unit/test_nlmsg/addrmsg_ipv4.dump-marshal0] _______
96s 96s sample = 'test_unit/test_nlmsg/addrmsg_ipv4.dump'96s marshal = <pyroute2.netlink.rtnl.marshal.MarshalRtnl object at 0x3ffa9cf4690>
96s 96s @pytest.mark.parametrize(
96s 'sample,marshal',
96s (
96s ('test_unit/test_nlmsg/addrmsg_ipv4.dump', MarshalRtnl()),
96s ('test_unit/test_nlmsg/gre_01.dump', MarshalRtnl()),
96s ),
96s )
96s def test_custom_key(sample, marshal):
96s # the header:
96s #
96s # uint32 length
96s # uint16 type
96s # ...
96s #
96s # e.g.:
96s # 4c:00:00:00:14:00:...
96s #
96s # this test uses:
96s marshal.key_format = 'I' # 4 bytes LE as the key
96s marshal.key_offset = 2 # but with offset 2
96s marshal.key_mask = 0xFFFF0000 # ignore 2 lower bytes:
96s #
96s # example 1:
96s # offset 2 -> 00:00:14:00
96s # format I -> 0x140000
96s # & mask -> 0x140000
96s #
96s # example 2:
96s # offset 2 -> 01:02:14:00
96s # format I -> 0x140201
96s # & mask -> 0x140000
96s #
96s # fix msg map to use new keys:
96s for key, value in tuple(marshal.msg_map.items()):
96s marshal.msg_map[key << 16] = value
96s #
96s # ok, now should run
96s > return run_using_marshal(sample, marshal)
96s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
96s 96s tests/test_unit/test_nlmsg/test_marshal.py:88: 96s _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
96s 96s sample = 'test_unit/test_nlmsg/addrmsg_ipv4.dump'
96s marshal = <pyroute2.netlink.rtnl.marshal.MarshalRtnl object at
0x3ffa9cf4690>
96s 96s def run_using_marshal(sample, marshal): 96s messages, data = load_sample(sample) 96s parsed = tuple(marshal.parse(data)) 96s > assert len(parsed) == len(messages) 96s E AssertionError: assert 0 == 1 96s E + where 0 = len(())96s E + and 1 = len([{'attrs': [['IFA_ADDRESS', '127.0.0.1'], ['IFA_LOCAL', '127.0.0.1'], ['IFA_LABEL', 'lo'], ['IFA_FLAGS', 128], ['IFA_CACHEINFO', {'cstamp': 261, 'ifa_preferred': 4294967295, 'ifa_valid': 4294967295, 'tstamp': 261}]], 'event': 'RTM_NEWADDR', 'family': 2, 'flags': 128, ...}])
96s 96s tests/test_unit/test_nlmsg/test_marshal.py:31: AssertionError96s __________ test_custom_key[test_unit/test_nlmsg/gre_01.dump-marshal1] __________
96s 96s sample = 'test_unit/test_nlmsg/gre_01.dump'96s marshal = <pyroute2.netlink.rtnl.marshal.MarshalRtnl object at 0x3ffa9c9da70>
96s 96s @pytest.mark.parametrize(
96s 'sample,marshal',
96s (
96s ('test_unit/test_nlmsg/addrmsg_ipv4.dump', MarshalRtnl()),
96s ('test_unit/test_nlmsg/gre_01.dump', MarshalRtnl()),
96s ),
96s )
96s def test_custom_key(sample, marshal):
96s # the header:
96s #
96s # uint32 length
96s # uint16 type
96s # ...
96s #
96s # e.g.:
96s # 4c:00:00:00:14:00:...
96s #
96s # this test uses:
96s marshal.key_format = 'I' # 4 bytes LE as the key
96s marshal.key_offset = 2 # but with offset 2
96s marshal.key_mask = 0xFFFF0000 # ignore 2 lower bytes:
96s #
96s # example 1:
96s # offset 2 -> 00:00:14:00
96s # format I -> 0x140000
96s # & mask -> 0x140000
96s #
96s # example 2:
96s # offset 2 -> 01:02:14:00
96s # format I -> 0x140201
96s # & mask -> 0x140000
96s #
96s # fix msg map to use new keys:
96s for key, value in tuple(marshal.msg_map.items()):
96s marshal.msg_map[key << 16] = value
96s #
96s # ok, now should run
96s > return run_using_marshal(sample, marshal)
96s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
96s 96s tests/test_unit/test_nlmsg/test_marshal.py:88: 96s _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
96s 96s sample = 'test_unit/test_nlmsg/gre_01.dump'
96s marshal = <pyroute2.netlink.rtnl.marshal.MarshalRtnl object at
0x3ffa9c9da70>
96s 96s def run_using_marshal(sample, marshal): 96s messages, data = load_sample(sample) 96s parsed = tuple(marshal.parse(data)) 96s > assert len(parsed) == len(messages) 96s E AssertionError: assert 0 == 2 96s E + where 0 = len(())96s E + and 2 = len([{'attrs': [['IFLA_IFNAME', 'mgre0'], ['IFLA_LINKINFO', {'attrs': [[...], [...]]}]], 'change': 0, 'event': 'RTM_NEWLINK', 'family': 0, ...}, {'event': 'NLMSG_ERROR', 'header': {'error': None, 'flags': 0, 'length': 36, 'pid': 12277, ...}}])
96s 96s tests/test_unit/test_nlmsg/test_marshal.py:31: AssertionError96s =========================== short test summary info ============================ 96s FAILED tests/test_unit/test_nlmsg/test_map_adapter.py::test_decode_adapter[default_decode] 96s FAILED tests/test_unit/test_nlmsg/test_map_adapter.py::test_decode_adapter[dict_decode] 96s FAILED tests/test_unit/test_nlmsg/test_marshal.py::test_marshal[test_unit/test_nlmsg/addrmsg_ipv4.dump-marshal0] 96s FAILED tests/test_unit/test_nlmsg/test_marshal.py::test_marshal[test_unit/test_nlmsg/gre_01.dump-marshal1] 96s FAILED tests/test_unit/test_nlmsg/test_marshal.py::test_marshal[test_unit/test_nlmsg/iw_info_rsp.dump-marshal2] 96s FAILED tests/test_unit/test_nlmsg/test_marshal.py::test_marshal[test_unit/test_nlmsg/iw_scan_rsp.dump-marshal3] 96s FAILED tests/test_unit/test_nlmsg/test_marshal.py::test_custom_key[test_unit/test_nlmsg/addrmsg_ipv4.dump-marshal0] 96s FAILED tests/test_unit/test_nlmsg/test_marshal.py::test_custom_key[test_unit/test_nlmsg/gre_01.dump-marshal1] 96s ========================= 8 failed, 95 passed in 0.51s =========================
96s autopkgtest [09:46:36]: test unittests
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature