0s autopkgtest [07:32:49]: starting date and time: 2026-02-08 07:32:49+0000 0s autopkgtest [07:32:49]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [07:32:49]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.az8ubutp/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:setuptools --apt-upgrade python-redis --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=setuptools/78.1.1-0.1build1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-s390x --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@sto01-s390x-22.secgroup --name adt-resolute-s390x-python-redis-20260208-073248-juju-7f2275-prod-proposed-migration-environment-15-0e8a46a8-18da-4181-8b74-2fb28b5ca701 --image adt/ubuntu-resolute-s390x-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-s390x -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-s390x-python-redis-20260208-073248-juju-7f2275-prod-proposed-migration-environment-15-0e8a46a8-18da-4181-8b74-2fb28b5ca701 from image adt/ubuntu-resolute-s390x-server-20260208.img (UUID bf8d2066-816d-4293-b7d1-06f39d3d29cb)... 129s autopkgtest [07:34:58]: testbed dpkg architecture: s390x 130s autopkgtest [07:34:59]: testbed apt version: 3.1.15 131s autopkgtest [07:35:00]: @@@@@@@@@@@@@@@@@@@@ test bed setup 132s autopkgtest [07:35:01]: testbed release detected to be: None 134s autopkgtest [07:35:03]: updating testbed package index (apt update) 135s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 135s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 135s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 135s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 135s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [175 kB] 135s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [28.2 kB] 135s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1523 kB] 135s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [202 kB] 135s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [1342 kB] 136s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [7384 B] 138s Fetched 3401 kB in 3s (1034 kB/s) 144s Reading package lists... 146s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 146s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 146s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 146s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 152s Reading package lists... 152s Reading package lists... 153s Building dependency tree... 153s Reading state information... 154s Calculating upgrade... 155s The following packages will be upgraded: 155s libxau6 libxkbcommon0 python3-pkg-resources python3-setuptools 155s ubuntu-kernel-accessories ubuntu-standard 155s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 155s Need to get 1005 kB of archives. 155s After this operation, 4096 B of additional disk space will be used. 155s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libxau6 s390x 1:1.0.11-1build2 [7410 B] 155s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libxkbcommon0 s390x 1.13.1-1 [165 kB] 155s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x ubuntu-standard s390x 1.564 [13.3 kB] 155s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-pkg-resources all 78.1.1-0.1build1 [144 kB] 155s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-setuptools all 78.1.1-0.1build1 [661 kB] 155s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x ubuntu-kernel-accessories s390x 1.564 [13.1 kB] 157s dpkg-preconfigure: unable to re-open stdin: No such file or directory 157s Fetched 1005 kB in 0s (2679 kB/s) 160s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88711 files and directories currently installed.) 160s Preparing to unpack .../0-libxau6_1%3a1.0.11-1build2_s390x.deb ... 160s Unpacking libxau6:s390x (1:1.0.11-1build2) over (1:1.0.11-1build1) ... 161s Preparing to unpack .../1-libxkbcommon0_1.13.1-1_s390x.deb ... 161s Unpacking libxkbcommon0:s390x (1.13.1-1) over (1.12.3-1) ... 161s Preparing to unpack .../2-ubuntu-standard_1.564_s390x.deb ... 161s Unpacking ubuntu-standard (1.564) over (1.563) ... 161s Preparing to unpack .../3-python3-pkg-resources_78.1.1-0.1build1_all.deb ... 162s Unpacking python3-pkg-resources (78.1.1-0.1build1) over (78.1.1-0.1) ... 163s Preparing to unpack .../4-python3-setuptools_78.1.1-0.1build1_all.deb ... 165s Unpacking python3-setuptools (78.1.1-0.1build1) over (78.1.1-0.1) ... 167s Preparing to unpack .../5-ubuntu-kernel-accessories_1.564_s390x.deb ... 167s Unpacking ubuntu-kernel-accessories (1.564) over (1.563) ... 168s Setting up python3-pkg-resources (78.1.1-0.1build1) ... 170s Setting up libxau6:s390x (1:1.0.11-1build2) ... 171s Setting up ubuntu-kernel-accessories (1.564) ... 171s Setting up python3-setuptools (78.1.1-0.1build1) ... 176s Setting up ubuntu-standard (1.564) ... 176s Setting up libxkbcommon0:s390x (1.13.1-1) ... 176s Processing triggers for libc-bin (2.42-2ubuntu4) ... 178s autopkgtest [07:35:47]: upgrading testbed (apt dist-upgrade and autopurge) 178s Reading package lists... 179s Building dependency tree... 179s Reading state information... 180s Calculating upgrade... 181s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 182s Reading package lists... 183s Building dependency tree... 183s Reading state information... 184s Solving dependencies... 185s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 191s autopkgtest [07:36:00]: testbed running kernel: Linux 6.19.0-3-generic #3-Ubuntu SMP Fri Jan 23 19:02:49 UTC 2026 191s autopkgtest [07:36:00]: @@@@@@@@@@@@@@@@@@@@ apt-source python-redis 196s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-redis 6.4.0-1 (dsc) [2376 B] 196s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-redis 6.4.0-1 (tar) [4879 kB] 196s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-redis 6.4.0-1 (diff) [8008 B] 196s gpgv: Signature made Mon Sep 15 17:15:17 2025 UTC 196s gpgv: using RSA key AC0A4FF12611B6FCCF01C111393587D97D86500B 196s gpgv: Can't check signature: No public key 196s dpkg-source: warning: cannot verify inline signature for ./python-redis_6.4.0-1.dsc: no acceptable signature found 197s autopkgtest [07:36:06]: testing package python-redis version 6.4.0-1 198s autopkgtest [07:36:07]: build not needed 199s autopkgtest [07:36:08]: test 0002-python3: preparing testbed 200s Reading package lists... 201s Building dependency tree... 201s Reading state information... 202s Solving dependencies... 203s The following NEW packages will be installed: 203s libblas3 libgfortran5 liblapack3 liblzf1 python3-all python3-coverage 203s python3-iniconfig python3-mock python3-numpy python3-numpy-dev 203s python3-pluggy python3-pytest python3-pytest-asyncio python3-pytest-timeout 203s python3-redis python3.14 python3.14-minimal redis-server redis-tools 203s 0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded. 203s Need to get 14.9 MB of archives. 203s After this operation, 67.2 MB of additional disk space will be used. 203s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x python3-numpy-dev s390x 1:2.3.5+ds-3 [146 kB] 203s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libblas3 s390x 3.12.1-7ubuntu1 [255 kB] 204s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x libgfortran5 s390x 15.2.0-12ubuntu1 [629 kB] 204s Get:4 http://ftpmaster.internal/ubuntu resolute/main s390x liblapack3 s390x 3.12.1-7ubuntu1 [2983 kB] 204s Get:5 http://ftpmaster.internal/ubuntu resolute/main s390x python3-numpy s390x 1:2.3.5+ds-3 [5305 kB] 204s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14-minimal s390x 3.14.2-1 [2510 kB] 204s Get:7 http://ftpmaster.internal/ubuntu resolute/universe s390x liblzf1 s390x 3.6-4build1 [7046 B] 204s Get:8 http://ftpmaster.internal/ubuntu resolute/universe s390x redis-tools s390x 5:8.0.5-1 [1422 kB] 204s Get:9 http://ftpmaster.internal/ubuntu resolute/universe s390x redis-server s390x 5:8.0.5-1 [53.2 kB] 204s Get:10 http://ftpmaster.internal/ubuntu resolute/main s390x python3.14 s390x 3.14.2-1 [816 kB] 204s Get:11 http://ftpmaster.internal/ubuntu resolute/main s390x python3-all s390x 3.13.9-3 [890 B] 204s Get:12 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-coverage s390x 7.8.2+dfsg1-1ubuntu1 [160 kB] 204s Get:13 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-iniconfig all 2.1.0-2 [6962 B] 204s Get:14 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pluggy all 1.6.0-2 [21.1 kB] 204s Get:15 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest all 9.0.2-2 [277 kB] 204s Get:16 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest-asyncio all 1.3.0-1 [13.8 kB] 204s Get:17 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-pytest-timeout all 2.4.0-2 [22.5 kB] 204s Get:18 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-redis all 6.4.0-1 [228 kB] 204s Get:19 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-mock all 5.2.0-2 [66.4 kB] 206s Fetched 14.9 MB in 1s (13.4 MB/s) 206s Selecting previously unselected package python3-numpy-dev:s390x. 206s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88711 files and directories currently installed.) 206s Preparing to unpack .../00-python3-numpy-dev_1%3a2.3.5+ds-3_s390x.deb ... 206s Unpacking python3-numpy-dev:s390x (1:2.3.5+ds-3) ... 207s Selecting previously unselected package libblas3:s390x. 207s Preparing to unpack .../01-libblas3_3.12.1-7ubuntu1_s390x.deb ... 207s Unpacking libblas3:s390x (3.12.1-7ubuntu1) ... 207s Selecting previously unselected package libgfortran5:s390x. 207s Preparing to unpack .../02-libgfortran5_15.2.0-12ubuntu1_s390x.deb ... 207s Unpacking libgfortran5:s390x (15.2.0-12ubuntu1) ... 207s Selecting previously unselected package liblapack3:s390x. 207s Preparing to unpack .../03-liblapack3_3.12.1-7ubuntu1_s390x.deb ... 207s Unpacking liblapack3:s390x (3.12.1-7ubuntu1) ... 209s Selecting previously unselected package python3-numpy. 209s Preparing to unpack .../04-python3-numpy_1%3a2.3.5+ds-3_s390x.deb ... 209s Unpacking python3-numpy (1:2.3.5+ds-3) ... 210s Selecting previously unselected package python3.14-minimal. 210s Preparing to unpack .../05-python3.14-minimal_3.14.2-1_s390x.deb ... 210s Unpacking python3.14-minimal (3.14.2-1) ... 211s Selecting previously unselected package liblzf1:s390x. 211s Preparing to unpack .../06-liblzf1_3.6-4build1_s390x.deb ... 211s Unpacking liblzf1:s390x (3.6-4build1) ... 211s Selecting previously unselected package redis-tools. 211s Preparing to unpack .../07-redis-tools_5%3a8.0.5-1_s390x.deb ... 211s Unpacking redis-tools (5:8.0.5-1) ... 212s Selecting previously unselected package redis-server. 212s Preparing to unpack .../08-redis-server_5%3a8.0.5-1_s390x.deb ... 212s Unpacking redis-server (5:8.0.5-1) ... 212s Selecting previously unselected package python3.14. 212s Preparing to unpack .../09-python3.14_3.14.2-1_s390x.deb ... 212s Unpacking python3.14 (3.14.2-1) ... 212s Selecting previously unselected package python3-all. 212s Preparing to unpack .../10-python3-all_3.13.9-3_s390x.deb ... 212s Unpacking python3-all (3.13.9-3) ... 212s Selecting previously unselected package python3-coverage. 212s Preparing to unpack .../11-python3-coverage_7.8.2+dfsg1-1ubuntu1_s390x.deb ... 212s Unpacking python3-coverage (7.8.2+dfsg1-1ubuntu1) ... 212s Selecting previously unselected package python3-iniconfig. 212s Preparing to unpack .../12-python3-iniconfig_2.1.0-2_all.deb ... 212s Unpacking python3-iniconfig (2.1.0-2) ... 212s Selecting previously unselected package python3-pluggy. 212s Preparing to unpack .../13-python3-pluggy_1.6.0-2_all.deb ... 212s Unpacking python3-pluggy (1.6.0-2) ... 212s Selecting previously unselected package python3-pytest. 212s Preparing to unpack .../14-python3-pytest_9.0.2-2_all.deb ... 212s Unpacking python3-pytest (9.0.2-2) ... 212s Selecting previously unselected package python3-pytest-asyncio. 212s Preparing to unpack .../15-python3-pytest-asyncio_1.3.0-1_all.deb ... 212s Unpacking python3-pytest-asyncio (1.3.0-1) ... 213s Selecting previously unselected package python3-pytest-timeout. 213s Preparing to unpack .../16-python3-pytest-timeout_2.4.0-2_all.deb ... 213s Unpacking python3-pytest-timeout (2.4.0-2) ... 213s Selecting previously unselected package python3-redis. 213s Preparing to unpack .../17-python3-redis_6.4.0-1_all.deb ... 213s Unpacking python3-redis (6.4.0-1) ... 214s Selecting previously unselected package python3-mock. 214s Preparing to unpack .../18-python3-mock_5.2.0-2_all.deb ... 214s Unpacking python3-mock (5.2.0-2) ... 214s Setting up python3-iniconfig (2.1.0-2) ... 218s Setting up python3-mock (5.2.0-2) ... 220s Setting up libblas3:s390x (3.12.1-7ubuntu1) ... 221s update-alternatives: using /usr/lib/s390x-linux-gnu/blas/libblas.so.3 to provide /usr/lib/s390x-linux-gnu/libblas.so.3 (libblas.so.3-s390x-linux-gnu) in auto mode 221s Setting up liblzf1:s390x (3.6-4build1) ... 221s Setting up python3-numpy-dev:s390x (1:2.3.5+ds-3) ... 221s Setting up python3-redis (6.4.0-1) ... 225s Setting up libgfortran5:s390x (15.2.0-12ubuntu1) ... 225s Setting up python3-pluggy (1.6.0-2) ... 226s Setting up python3.14-minimal (3.14.2-1) ... 231s Setting up liblapack3:s390x (3.12.1-7ubuntu1) ... 231s update-alternatives: using /usr/lib/s390x-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/s390x-linux-gnu/liblapack.so.3 (liblapack.so.3-s390x-linux-gnu) in auto mode 231s Setting up python3-pytest (9.0.2-2) ... 236s Setting up redis-tools (5:8.0.5-1) ... 237s Setting up python3-numpy (1:2.3.5+ds-3) ... 261s Setting up python3-pytest-asyncio (1.3.0-1) ... 263s Setting up python3.14 (3.14.2-1) ... 274s Setting up python3-pytest-timeout (2.4.0-2) ... 275s Setting up python3-all (3.13.9-3) ... 275s Setting up python3-coverage (7.8.2+dfsg1-1ubuntu1) ... 278s Setting up redis-server (5:8.0.5-1) ... 280s Created symlink '/etc/systemd/system/redis.service' → '/usr/lib/systemd/system/redis-server.service'. 280s Created symlink '/etc/systemd/system/multi-user.target.wants/redis-server.service' → '/usr/lib/systemd/system/redis-server.service'. 282s Processing triggers for systemd (259-1ubuntu3) ... 282s Processing triggers for man-db (2.13.1-1build1) ... 290s Processing triggers for libc-bin (2.42-2ubuntu4) ... 294s autopkgtest [07:37:43]: test 0002-python3: [----------------------- 294s + py3versions --supported 295s + python3.14 -m pytest -W always --ignore tests/test_asyncio/test_cluster.py -k not redismod and onlynoncluster and not graph and not module and not busy_loading_disconnects_socket and not busy_loading_from_pipeline_immediate_command and not busy_loading_from_pipeline and not get_set_retry_object_for_cluster_client and not test_get_sentinels and not test_get_master_addr_by_name and not test_redis_master_usage 338s ============================= test session starts ============================== 338s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 338s rootdir: /tmp/autopkgtest.BRmsVr/build.84L/src 338s configfile: pyproject.toml 338s plugins: timeout-2.4.0, asyncio-1.3.0, typeguard-4.4.4 338s timeout: 30.0s 338s timeout method: signal 338s timeout func_only: False 338s asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function 338s collected 3173 items / 2402 deselected / 771 selected 338s 370s tests/test_asyncio/test_commands.py ....................................................ssssssssssss..........................................................................................................................ss...................... 370s tests/test_asyncio/test_connection.py .......s. 377s tests/test_asyncio/test_connection_pool.py ..............XXXXXXXXXXXXXXXXXXXX 380s tests/test_asyncio/test_credentials.py ..........sssssssssssssssss 396s tests/test_asyncio/test_cwe_404.py ........ 399s tests/test_asyncio/test_encoding.py ................ 399s tests/test_asyncio/test_lock.py .. 400s tests/test_asyncio/test_monitor.py ............ss 402s tests/test_asyncio/test_pipeline.py .................................. 440s tests/test_asyncio/test_pubsub.py F.....................F......................................................................F...F.... 443s tests/test_asyncio/test_scripting.py ................ 443s tests/test_asyncio/test_sentinel.py .................. 443s tests/test_cache.py ssssssssssssssssssssssssss 463s tests/test_commands.py ..............................s.............ssssss..............................................................................s............... 464s tests/test_connection.py ...s.... 466s tests/test_connection_pool.py s........... 466s tests/test_credentials.py .....sssssssssss 466s tests/test_function.py .. 467s tests/test_max_connections_error.py .. 467s tests/test_monitor.py ......s 468s tests/test_pipeline.py ................. 473s tests/test_pubsub.py ..................... 473s tests/test_retry.py ...... 473s tests/test_scripting.py .. 475s tests/test_sentinel.py .................. 475s 475s =================================== FAILURES =================================== 475s __ TestPubSubSubscribeUnsubscribe.test_channel_subscribe_unsubscribe[single] ___ 475s 475s self = 475s pubsub = 475s 475s async def test_channel_subscribe_unsubscribe(self, pubsub): 475s kwargs = make_subscribe_test_data(pubsub, "channel") 475s > await self._test_subscribe_unsubscribe(**kwargs) 475s 475s tests/test_asyncio/test_pubsub.py:115: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s p = 475s sub_type = 'subscribe', unsub_type = 'unsubscribe' 475s sub_func = > 475s unsub_func = > 475s keys = ['foo', 'bar', 'uniᅨcode'] 475s 475s async def _test_subscribe_unsubscribe( 475s self, p, sub_type, unsub_type, sub_func, unsub_func, keys 475s ): 475s for key in keys: 475s assert await sub_func(key) is None 475s 475s # should be a message for each channel/pattern we just subscribed to 475s for i, key in enumerate(keys): 475s assert await wait_for_message(p) == make_message(sub_type, key, i + 1) 475s 475s for key in keys: 475s assert await unsub_func(key) is None 475s 475s # should be a message for each channel/pattern we just unsubscribed 475s # from 475s for i, key in enumerate(keys): 475s i = len(keys) - 1 - i 475s > assert await wait_for_message(p) == make_message(unsub_type, key, i) 475s E AssertionError: assert None == {'channel': b'foo', 'data': 2, 'pattern': None, 'type': 'unsubscribe'} 475s E + where {'channel': b'foo', 'data': 2, 'pattern': None, 'type': 'unsubscribe'} = make_message('unsubscribe', 'foo', 2) 475s 475s tests/test_asyncio/test_pubsub.py:111: AssertionError 475s _ TestPubSubSubscribeUnsubscribe.test_ignore_individual_subscribe_messages[single] _ 475s 475s self = 475s pubsub = 475s 475s async def test_ignore_individual_subscribe_messages(self, pubsub): 475s p = pubsub 475s 475s checks = ( 475s (p.subscribe, "foo"), 475s (p.unsubscribe, "foo"), 475s (p.psubscribe, "f*"), 475s (p.punsubscribe, "f*"), 475s ) 475s 475s assert p.subscribed is False 475s for func, channel in checks: 475s assert await func(channel) is None 475s assert p.subscribed is True 475s message = await wait_for_message(p, ignore_subscribe_messages=True) 475s assert message is None 475s > assert p.subscribed is False 475s E assert True is False 475s E + where True = .subscribed 475s 475s tests/test_asyncio/test_pubsub.py:292: AssertionError 475s _______ TestPubSubAutoReconnect.test_reconnect_socket_error[pool-listen] _______ 475s 475s self = 475s r = )>)> 475s method = 'listen' 475s 475s async def test_reconnect_socket_error(self, r: redis.Redis, method): 475s """ 475s Test that a socket error will cause reconnect 475s """ 475s try: 475s async with async_timeout(self.timeout): 475s await self.mysetup(r, method) 475s # now, disconnect the connection, and wait for it to be re-established 475s async with self.cond: 475s assert self.state == 0 475s self.state = 1 475s with mock.patch.object(self.pubsub.connection, "_parser") as m: 475s m.read_response.side_effect = socket.error 475s m.can_read_destructive.side_effect = socket.error 475s # wait until task noticies the disconnect until we 475s # undo the patch 475s await self.cond.wait_for(lambda: self.state >= 2) 475s assert not self.pubsub.connection.is_connected 475s # it is in a disconnecte state 475s # wait for reconnect 475s > await self.cond.wait_for( 475s lambda: self.pubsub.connection.is_connected 475s ) 475s 475s tests/test_asyncio/test_pubsub.py:915: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s /usr/lib/python3.14/asyncio/locks.py:313: in wait_for 475s await self.wait() 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s 475s async def wait(self): 475s """Wait until notified. 475s 475s If the calling task has not acquired the lock when this 475s method is called, a RuntimeError is raised. 475s 475s This method releases the underlying lock, and then blocks 475s until it is awakened by a notify() or notify_all() call for 475s the same condition variable in another task. Once 475s awakened, it re-acquires the lock and returns True. 475s 475s This method may return spuriously, 475s which is why the caller should always 475s re-check the state and be prepared to wait() again. 475s """ 475s if not self.locked(): 475s raise RuntimeError('cannot wait on un-acquired lock') 475s 475s fut = self._get_loop().create_future() 475s self.release() 475s try: 475s try: 475s self._waiters.append(fut) 475s try: 475s > await fut 475s E asyncio.exceptions.CancelledError 475s 475s /usr/lib/python3.14/asyncio/locks.py:272: CancelledError 475s 475s The above exception was the direct cause of the following exception: 475s 475s self = 475s r = )>)> 475s method = 'listen' 475s 475s async def test_reconnect_socket_error(self, r: redis.Redis, method): 475s """ 475s Test that a socket error will cause reconnect 475s """ 475s try: 475s > async with async_timeout(self.timeout): 475s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 475s 475s tests/test_asyncio/test_pubsub.py:900: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s exc_type = 475s exc_val = CancelledError(), exc_tb = 475s 475s async def __aexit__( 475s self, 475s exc_type: type[BaseException] | None, 475s exc_val: BaseException | None, 475s exc_tb: TracebackType | None, 475s ) -> bool | None: 475s assert self._state in (_State.ENTERED, _State.EXPIRING) 475s 475s if self._timeout_handler is not None: 475s self._timeout_handler.cancel() 475s self._timeout_handler = None 475s 475s if self._state is _State.EXPIRING: 475s self._state = _State.EXPIRED 475s 475s if self._task.uncancel() <= self._cancelling and exc_type is not None: 475s # Since there are no new cancel requests, we're 475s # handling this. 475s if issubclass(exc_type, exceptions.CancelledError): 475s > raise TimeoutError from exc_val 475s E TimeoutError 475s 475s /usr/lib/python3.14/asyncio/timeouts.py:114: TimeoutError 475s 475s During handling of the above exception, another exception occurred: 475s 475s self = 475s r = )>)> 475s method = 'listen' 475s 475s async def test_reconnect_socket_error(self, r: redis.Redis, method): 475s """ 475s Test that a socket error will cause reconnect 475s """ 475s try: 475s async with async_timeout(self.timeout): 475s await self.mysetup(r, method) 475s # now, disconnect the connection, and wait for it to be re-established 475s async with self.cond: 475s assert self.state == 0 475s self.state = 1 475s with mock.patch.object(self.pubsub.connection, "_parser") as m: 475s m.read_response.side_effect = socket.error 475s m.can_read_destructive.side_effect = socket.error 475s # wait until task noticies the disconnect until we 475s # undo the patch 475s await self.cond.wait_for(lambda: self.state >= 2) 475s assert not self.pubsub.connection.is_connected 475s # it is in a disconnecte state 475s # wait for reconnect 475s await self.cond.wait_for( 475s lambda: self.pubsub.connection.is_connected 475s ) 475s assert self.state == 3 475s 475s await self.myfinish() 475s finally: 475s > await self.mykill() 475s 475s tests/test_asyncio/test_pubsub.py:922: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s tests/test_asyncio/test_pubsub.py:893: in mykill 475s await self.task 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s 475s async def loop(self): 475s # reader loop, performing state transitions as it 475s # discovers disconnects and reconnects 475s await self.pubsub.subscribe("foo") 475s while True: 475s await asyncio.sleep(0.01) # give main thread chance to get lock 475s async with self.cond: 475s old_state = self.state 475s try: 475s if self.state == 4: 475s break 475s got_msg = await self.get_message() 475s > assert got_msg 475s E assert False 475s 475s tests/test_asyncio/test_pubsub.py:958: AssertionError 475s ________ TestPubSubAutoReconnect.test_reconnect_disconnect[pool-listen] ________ 475s 475s self = 475s r = )>)> 475s method = 'listen' 475s 475s async def test_reconnect_disconnect(self, r: redis.Redis, method): 475s """ 475s Test that a manual disconnect() will cause reconnect 475s """ 475s try: 475s async with async_timeout(self.timeout): 475s await self.mysetup(r, method) 475s # now, disconnect the connection, and wait for it to be re-established 475s async with self.cond: 475s self.state = 1 475s await self.pubsub.connection.disconnect() 475s assert not self.pubsub.connection.is_connected 475s # wait for reconnect 475s > await self.cond.wait_for( 475s lambda: self.pubsub.connection.is_connected 475s ) 475s 475s tests/test_asyncio/test_pubsub.py:937: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s /usr/lib/python3.14/asyncio/locks.py:313: in wait_for 475s await self.wait() 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s 475s async def wait(self): 475s """Wait until notified. 475s 475s If the calling task has not acquired the lock when this 475s method is called, a RuntimeError is raised. 475s 475s This method releases the underlying lock, and then blocks 475s until it is awakened by a notify() or notify_all() call for 475s the same condition variable in another task. Once 475s awakened, it re-acquires the lock and returns True. 475s 475s This method may return spuriously, 475s which is why the caller should always 475s re-check the state and be prepared to wait() again. 475s """ 475s if not self.locked(): 475s raise RuntimeError('cannot wait on un-acquired lock') 475s 475s fut = self._get_loop().create_future() 475s self.release() 475s try: 475s try: 475s self._waiters.append(fut) 475s try: 475s > await fut 475s E asyncio.exceptions.CancelledError 475s 475s /usr/lib/python3.14/asyncio/locks.py:272: CancelledError 475s 475s The above exception was the direct cause of the following exception: 475s 475s self = 475s r = )>)> 475s method = 'listen' 475s 475s async def test_reconnect_disconnect(self, r: redis.Redis, method): 475s """ 475s Test that a manual disconnect() will cause reconnect 475s """ 475s try: 475s > async with async_timeout(self.timeout): 475s ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 475s 475s tests/test_asyncio/test_pubsub.py:929: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s exc_type = 475s exc_val = CancelledError(), exc_tb = 475s 475s async def __aexit__( 475s self, 475s exc_type: type[BaseException] | None, 475s exc_val: BaseException | None, 475s exc_tb: TracebackType | None, 475s ) -> bool | None: 475s assert self._state in (_State.ENTERED, _State.EXPIRING) 475s 475s if self._timeout_handler is not None: 475s self._timeout_handler.cancel() 475s self._timeout_handler = None 475s 475s if self._state is _State.EXPIRING: 475s self._state = _State.EXPIRED 475s 475s if self._task.uncancel() <= self._cancelling and exc_type is not None: 475s # Since there are no new cancel requests, we're 475s # handling this. 475s if issubclass(exc_type, exceptions.CancelledError): 475s > raise TimeoutError from exc_val 475s E TimeoutError 475s 475s /usr/lib/python3.14/asyncio/timeouts.py:114: TimeoutError 475s 475s During handling of the above exception, another exception occurred: 475s 475s self = 475s r = )>)> 475s method = 'listen' 475s 475s async def test_reconnect_disconnect(self, r: redis.Redis, method): 475s """ 475s Test that a manual disconnect() will cause reconnect 475s """ 475s try: 475s async with async_timeout(self.timeout): 475s await self.mysetup(r, method) 475s # now, disconnect the connection, and wait for it to be re-established 475s async with self.cond: 475s self.state = 1 475s await self.pubsub.connection.disconnect() 475s assert not self.pubsub.connection.is_connected 475s # wait for reconnect 475s await self.cond.wait_for( 475s lambda: self.pubsub.connection.is_connected 475s ) 475s assert self.state == 3 475s 475s await self.myfinish() 475s finally: 475s > await self.mykill() 475s 475s tests/test_asyncio/test_pubsub.py:944: 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s tests/test_asyncio/test_pubsub.py:893: in mykill 475s await self.task 475s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 475s 475s self = 475s 475s async def loop(self): 475s # reader loop, performing state transitions as it 475s # discovers disconnects and reconnects 475s await self.pubsub.subscribe("foo") 475s while True: 475s await asyncio.sleep(0.01) # give main thread chance to get lock 475s async with self.cond: 475s old_state = self.state 475s try: 475s if self.state == 4: 475s break 475s got_msg = await self.get_message() 475s > assert got_msg 475s E assert False 475s 475s tests/test_asyncio/test_pubsub.py:958: AssertionError 475s =============================== warnings summary =============================== 475s tests/test_asyncio/test_sentinel.py::test_repr_correctly_represents_connection_object 475s /tmp/autopkgtest.BRmsVr/build.84L/src/redis/asyncio/connection.py:232: ResourceWarning: unclosed Connection 475s _warnings.warn( 475s 475s Object allocated at: 475s File "/tmp/autopkgtest.BRmsVr/build.84L/src/redis/asyncio/connection.py", line 1178 475s return self.connection_class(**self.connection_kwargs) 475s 475s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 475s =========================== short test summary info ============================ 475s FAILED tests/test_asyncio/test_pubsub.py::TestPubSubSubscribeUnsubscribe::test_channel_subscribe_unsubscribe[single] 475s FAILED tests/test_asyncio/test_pubsub.py::TestPubSubSubscribeUnsubscribe::test_ignore_individual_subscribe_messages[single] 475s FAILED tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_socket_error[pool-listen] 475s FAILED tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_disconnect[pool-listen] 475s = 4 failed, 665 passed, 82 skipped, 2402 deselected, 20 xpassed, 1 warning in 173.50s (0:02:53) = 477s autopkgtest [07:40:46]: test 0002-python3: -----------------------] 478s 0002-python3 FAIL non-zero exit status 1 478s autopkgtest [07:40:47]: test 0002-python3: - - - - - - - - - - results - - - - - - - - - - 479s autopkgtest [07:40:48]: test 0003-interaction: preparing testbed 497s Creating nova instance adt-resolute-s390x-python-redis-20260208-073248-juju-7f2275-prod-proposed-migration-environment-15-0e8a46a8-18da-4181-8b74-2fb28b5ca701 from image adt/ubuntu-resolute-s390x-server-20260208.img (UUID bf8d2066-816d-4293-b7d1-06f39d3d29cb)... 720s autopkgtest [07:44:49]: testbed dpkg architecture: s390x 721s autopkgtest [07:44:50]: testbed apt version: 3.1.15 722s autopkgtest [07:44:51]: @@@@@@@@@@@@@@@@@@@@ test bed setup 722s autopkgtest [07:44:51]: testbed release detected to be: resolute 725s autopkgtest [07:44:54]: updating testbed package index (apt update) 726s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 726s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 726s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 726s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 726s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1523 kB] 726s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [175 kB] 726s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [28.2 kB] 726s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x Packages [202 kB] 726s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/universe s390x Packages [1342 kB] 727s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse s390x Packages [7384 B] 730s Fetched 3401 kB in 5s (737 kB/s) 737s Reading package lists... 740s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 740s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 740s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 740s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 748s Reading package lists... 749s Reading package lists... 751s Building dependency tree... 751s Reading state information... 753s Calculating upgrade... 756s The following packages will be upgraded: 756s libxau6 libxkbcommon0 python3-pkg-resources python3-setuptools 756s ubuntu-kernel-accessories ubuntu-standard 756s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 756s Need to get 1005 kB of archives. 756s After this operation, 4096 B of additional disk space will be used. 756s Get:1 http://ftpmaster.internal/ubuntu resolute/main s390x libxau6 s390x 1:1.0.11-1build2 [7410 B] 756s Get:2 http://ftpmaster.internal/ubuntu resolute/main s390x libxkbcommon0 s390x 1.13.1-1 [165 kB] 756s Get:3 http://ftpmaster.internal/ubuntu resolute/main s390x ubuntu-standard s390x 1.564 [13.3 kB] 756s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-pkg-resources all 78.1.1-0.1build1 [144 kB] 756s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main s390x python3-setuptools all 78.1.1-0.1build1 [661 kB] 756s Get:6 http://ftpmaster.internal/ubuntu resolute/main s390x ubuntu-kernel-accessories s390x 1.564 [13.1 kB] 761s dpkg-preconfigure: unable to re-open stdin: No such file or directory 762s Fetched 1005 kB in 1s (1184 kB/s) 774s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88711 files and directories currently installed.) 774s Preparing to unpack .../0-libxau6_1%3a1.0.11-1build2_s390x.deb ... 777s Unpacking libxau6:s390x (1:1.0.11-1build2) over (1:1.0.11-1build1) ... 782s Preparing to unpack .../1-libxkbcommon0_1.13.1-1_s390x.deb ... 783s Unpacking libxkbcommon0:s390x (1.13.1-1) over (1.12.3-1) ... 788s Preparing to unpack .../2-ubuntu-standard_1.564_s390x.deb ... 791s Unpacking ubuntu-standard (1.564) over (1.563) ... 793s Preparing to unpack .../3-python3-pkg-resources_78.1.1-0.1build1_all.deb ... 795s Unpacking python3-pkg-resources (78.1.1-0.1build1) over (78.1.1-0.1) ... 797s Preparing to unpack .../4-python3-setuptools_78.1.1-0.1build1_all.deb ... 798s Unpacking python3-setuptools (78.1.1-0.1build1) over (78.1.1-0.1) ... 805s Preparing to unpack .../5-ubuntu-kernel-accessories_1.564_s390x.deb ... 806s Unpacking ubuntu-kernel-accessories (1.564) over (1.563) ... 808s Setting up python3-pkg-resources (78.1.1-0.1build1) ... 814s Setting up libxau6:s390x (1:1.0.11-1build2) ... 815s Setting up ubuntu-kernel-accessories (1.564) ... 816s Setting up python3-setuptools (78.1.1-0.1build1) ... 823s Setting up ubuntu-standard (1.564) ... 824s Setting up libxkbcommon0:s390x (1.13.1-1) ... 825s Processing triggers for libc-bin (2.42-2ubuntu4) ... 833s autopkgtest [07:46:42]: upgrading testbed (apt dist-upgrade and autopurge) 834s Reading package lists... 835s Building dependency tree... 835s Reading state information... 836s Calculating upgrade... 837s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 838s Reading package lists... 840s Building dependency tree... 840s Reading state information... 841s Solving dependencies... 842s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 856s Reading package lists... 857s Building dependency tree... 857s Reading state information... 858s Solving dependencies... 859s The following NEW packages will be installed: 859s liblzf1 python3-redis redis-server redis-tools 859s 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. 859s Need to get 1711 kB of archives. 859s After this operation, 9527 kB of additional disk space will be used. 859s Get:1 http://ftpmaster.internal/ubuntu resolute/universe s390x liblzf1 s390x 3.6-4build1 [7046 B] 859s Get:2 http://ftpmaster.internal/ubuntu resolute/universe s390x redis-tools s390x 5:8.0.5-1 [1422 kB] 859s Get:3 http://ftpmaster.internal/ubuntu resolute/universe s390x redis-server s390x 5:8.0.5-1 [53.2 kB] 859s Get:4 http://ftpmaster.internal/ubuntu resolute/universe s390x python3-redis all 6.4.0-1 [228 kB] 863s Fetched 1711 kB in 1s (2190 kB/s) 864s Selecting previously unselected package liblzf1:s390x. 864s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88711 files and directories currently installed.) 864s Preparing to unpack .../liblzf1_3.6-4build1_s390x.deb ... 864s Unpacking liblzf1:s390x (3.6-4build1) ... 864s Selecting previously unselected package redis-tools. 865s Preparing to unpack .../redis-tools_5%3a8.0.5-1_s390x.deb ... 865s Unpacking redis-tools (5:8.0.5-1) ... 865s Selecting previously unselected package redis-server. 865s Preparing to unpack .../redis-server_5%3a8.0.5-1_s390x.deb ... 865s Unpacking redis-server (5:8.0.5-1) ... 865s Selecting previously unselected package python3-redis. 865s Preparing to unpack .../python3-redis_6.4.0-1_all.deb ... 865s Unpacking python3-redis (6.4.0-1) ... 866s Setting up liblzf1:s390x (3.6-4build1) ... 866s Setting up python3-redis (6.4.0-1) ... 868s Setting up redis-tools (5:8.0.5-1) ... 873s Setting up redis-server (5:8.0.5-1) ... 878s Created symlink '/etc/systemd/system/redis.service' → '/usr/lib/systemd/system/redis-server.service'. 878s Created symlink '/etc/systemd/system/multi-user.target.wants/redis-server.service' → '/usr/lib/systemd/system/redis-server.service'. 881s Processing triggers for man-db (2.13.1-1build1) ... 917s Processing triggers for libc-bin (2.42-2ubuntu4) ... 933s autopkgtest [07:48:22]: test 0003-interaction: [----------------------- 937s autopkgtest [07:48:26]: test 0003-interaction: -----------------------] 938s 0003-interaction PASS 938s autopkgtest [07:48:27]: test 0003-interaction: - - - - - - - - - - results - - - - - - - - - - 941s autopkgtest [07:48:30]: @@@@@@@@@@@@@@@@@@@@ summary 941s 0002-python3 FAIL non-zero exit status 1 941s 0003-interaction PASS