0s autopkgtest [05:16:41]: starting date and time: 2026-02-09 05:16:41+0000 0s autopkgtest [05:16:41]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [05:16:41]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.dg47jl65/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:par2cmdline --apt-upgrade sabnzbdplus --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=par2cmdline/1.1.1-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-amd64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@sto01-20.secgroup --name adt-resolute-amd64-sabnzbdplus-20260209-051641-juju-7f2275-prod-proposed-migration-environment-20-0bda1c81-22fe-40e6-adf4-0c8d1dc3daf7 --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-amd64-sabnzbdplus-20260209-051641-juju-7f2275-prod-proposed-migration-environment-20-0bda1c81-22fe-40e6-adf4-0c8d1dc3daf7 from image adt/ubuntu-resolute-amd64-server-20260204.img (UUID fedf54b4-458b-493e-8072-6425c19717b4)... 75s autopkgtest [05:17:56]: testbed dpkg architecture: amd64 75s autopkgtest [05:17:56]: testbed apt version: 3.1.14 76s autopkgtest [05:17:57]: @@@@@@@@@@@@@@@@@@@@ test bed setup 76s autopkgtest [05:17:57]: testbed release detected to be: None 76s autopkgtest [05:17:57]: updating testbed package index (apt update) 77s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 77s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 77s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 77s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 77s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1598 kB] 77s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [164 kB] 77s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [29.4 kB] 77s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [240 kB] 77s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [204 kB] 77s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 c-n-f Metadata [6104 B] 77s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted amd64 c-n-f Metadata [120 B] 77s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [1574 kB] 77s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe i386 Packages [641 kB] 77s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 c-n-f Metadata [32.9 kB] 77s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse i386 Packages [4320 B] 77s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 Packages [25.2 kB] 77s Get:17 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse amd64 c-n-f Metadata [996 B] 78s Fetched 4643 kB in 1s (7157 kB/s) 78s Reading package lists... 79s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 79s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 79s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 79s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 79s Reading package lists... 79s Reading package lists... 80s Building dependency tree... 80s Reading state information... 80s Calculating upgrade... 80s The following package was automatically installed and is no longer required: 80s libpython3.13 80s Use 'sudo apt autoremove' to remove it. 80s The following NEW packages will be installed: 80s libpython3.14 libpython3.14-minimal libpython3.14-stdlib 80s linux-headers-6.19.0-3 linux-headers-6.19.0-3-generic 80s linux-image-6.19.0-3-generic linux-modules-6.19.0-3-generic 80s linux-tools-6.19.0-3 linux-tools-6.19.0-3-generic 80s The following packages will be upgraded: 80s 3cpio amd64-microcode apt bpftool busybox-initramfs busybox-static dash dbus 80s dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common 80s dbus-user-session debianutils dmsetup ethtool findutils 80s gir1.2-girepository-3.0 gir1.2-glib-2.0 hwdata less libapt-pkg7.0 libattr1 80s libbpf1 libbsd0 libdbus-1-3 libdevmapper1.02.1 libdrm-amdgpu1 libdrm-common 80s libdrm2 libevent-core-2.1-7t64 libgdbm-compat4t64 libgdbm6t64 80s libgirepository-2.0-0 libglib2.0-0t64 libglib2.0-data libgpm2 libgudev-1.0-0 80s libidn2-0 libjansson4 libkeyutils1 liblsof0 libmaxminddb0 80s libnetfilter-conntrack3 libnpth0t64 libonig5 libpcap0.8t64 libpci3 80s libsensors-config libsensors5 libusb-1.0-0 libwrap0 libxau6 libxkbcommon0 80s linux-generic linux-headers-generic linux-headers-virtual 80s linux-image-generic linux-image-virtual linux-perf linux-tools-common 80s linux-virtual lsof man-db mawk patch pciutils pnp.ids pollinate 80s python3-linkify-it python3-markdown-it python3-referencing sed 80s shared-mime-info tar tcpdump ubuntu-kernel-accessories ubuntu-standard 80s 78 upgraded, 9 newly installed, 0 to remove and 0 not upgraded. 80s Need to get 233 MB of archives. 80s After this operation, 339 MB of additional disk space will be used. 80s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 debianutils amd64 5.23.2build1 [93.3 kB] 80s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 dash amd64 0.5.12-12ubuntu3 [96.0 kB] 80s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 findutils amd64 4.10.0-3build2 [307 kB] 80s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 sed amd64 4.9-2build3 [195 kB] 80s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 tar amd64 1.35+dfsg-3.1build2 [257 kB] 80s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libattr1 amd64 1:2.5.2-3build2 [11.4 kB] 80s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 libbsd0 amd64 0.12.2-2build2 [42.3 kB] 80s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 mawk amd64 1.3.4.20260129-1 [133 kB] 80s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 libapt-pkg7.0 amd64 3.1.15 [1151 kB] 80s Get:10 http://ftpmaster.internal/ubuntu resolute/main amd64 apt amd64 3.1.15 [1479 kB] 80s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-system-bus-common all 1.16.2-2ubuntu3 [55.8 kB] 80s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-session-bus-common all 1.16.2-2ubuntu3 [54.4 kB] 80s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-user-session amd64 1.16.2-2ubuntu3 [9696 B] 80s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-daemon amd64 1.16.2-2ubuntu3 [119 kB] 80s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus-bin amd64 1.16.2-2ubuntu3 [40.1 kB] 80s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 dbus amd64 1.16.2-2ubuntu3 [24.2 kB] 80s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 libdbus-1-3 amd64 1.16.2-2ubuntu3 [185 kB] 80s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 libdevmapper1.02.1 amd64 2:1.02.205-2ubuntu3 [142 kB] 80s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 dmsetup amd64 2:1.02.205-2ubuntu3 [79.4 kB] 80s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 ethtool amd64 1:6.15-3build1 [318 kB] 80s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 gir1.2-girepository-3.0 amd64 2.87.2-2 [25.2 kB] 80s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 libgirepository-2.0-0 amd64 2.87.2-2 [76.1 kB] 80s Get:23 http://ftpmaster.internal/ubuntu resolute/main amd64 gir1.2-glib-2.0 amd64 2.87.2-2 [182 kB] 80s Get:24 http://ftpmaster.internal/ubuntu resolute/main amd64 libglib2.0-0t64 amd64 2.87.2-2 [1613 kB] 80s Get:25 http://ftpmaster.internal/ubuntu resolute/main amd64 less amd64 668-1build1 [172 kB] 80s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 libbpf1 amd64 1:1.6.2-1build1 [184 kB] 80s Get:27 http://ftpmaster.internal/ubuntu resolute/main amd64 libglib2.0-data all 2.87.2-2 [58.2 kB] 80s Get:28 http://ftpmaster.internal/ubuntu resolute/main amd64 libidn2-0 amd64 2.3.8-4build1 [67.6 kB] 80s Get:29 http://ftpmaster.internal/ubuntu resolute/main amd64 libkeyutils1 amd64 1.6.3-6ubuntu3 [10.6 kB] 80s Get:30 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-linkify-it all 2.0.3-1ubuntu3 [19.4 kB] 80s Get:31 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-markdown-it all 3.0.0-3build1 [54.4 kB] 80s Get:32 http://ftpmaster.internal/ubuntu resolute/main amd64 shared-mime-info amd64 2.4-5build3 [476 kB] 80s Get:33 http://ftpmaster.internal/ubuntu resolute/main amd64 busybox-static amd64 1:1.37.0-7ubuntu1 [1034 kB] 80s Get:34 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm-common all 2.4.131-1 [9774 B] 80s Get:35 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm2 amd64 2.4.131-1 [42.3 kB] 80s Get:36 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdbm6t64 amd64 1.26-1build1 [36.5 kB] 80s Get:37 http://ftpmaster.internal/ubuntu resolute/main amd64 libgpm2 amd64 1.20.7-12build1 [14.4 kB] 80s Get:38 http://ftpmaster.internal/ubuntu resolute/main amd64 libjansson4 amd64 2.14-2build4 [33.2 kB] 80s Get:39 http://ftpmaster.internal/ubuntu resolute/main amd64 lsof amd64 4.99.4+dfsg-2build2 [239 kB] 80s Get:40 http://ftpmaster.internal/ubuntu resolute/main amd64 liblsof0 amd64 4.99.4+dfsg-2build2 [56.5 kB] 80s Get:41 http://ftpmaster.internal/ubuntu resolute/main amd64 libmaxminddb0 amd64 1.12.2-1build2 [18.9 kB] 80s Get:42 http://ftpmaster.internal/ubuntu resolute/main amd64 libnetfilter-conntrack3 amd64 1.1.1-1 [47.5 kB] 80s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 libpcap0.8t64 amd64 1.10.5-2ubuntu3 [154 kB] 80s Get:44 http://ftpmaster.internal/ubuntu resolute/main amd64 pciutils amd64 1:3.14.0-1build2 [95.5 kB] 80s Get:45 http://ftpmaster.internal/ubuntu resolute/main amd64 libpci3 amd64 1:3.14.0-1build2 [38.1 kB] 80s Get:46 http://ftpmaster.internal/ubuntu resolute/main amd64 libsensors-config all 1:3.6.2-2build1 [6862 B] 80s Get:47 http://ftpmaster.internal/ubuntu resolute/main amd64 libsensors5 amd64 1:3.6.2-2build1 [28.9 kB] 80s Get:48 http://ftpmaster.internal/ubuntu resolute/main amd64 libusb-1.0-0 amd64 2:1.0.29-2build1 [56.9 kB] 80s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 libxau6 amd64 1:1.0.11-1build2 [7502 B] 80s Get:50 http://ftpmaster.internal/ubuntu resolute/main amd64 libxkbcommon0 amd64 1.13.1-1 [159 kB] 80s Get:51 http://ftpmaster.internal/ubuntu resolute/main amd64 man-db amd64 2.13.1-1build1 [1392 kB] 80s Get:52 http://ftpmaster.internal/ubuntu resolute/main amd64 tcpdump amd64 4.99.5-2ubuntu3 [477 kB] 80s Get:53 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-standard amd64 1.564 [13.3 kB] 80s Get:54 http://ftpmaster.internal/ubuntu resolute/main amd64 3cpio amd64 0.14.0-1ubuntu1 [285 kB] 80s Get:55 http://ftpmaster.internal/ubuntu resolute/main amd64 bpftool amd64 7.7.0+6.19.0-3.3 [1229 kB] 80s Get:56 http://ftpmaster.internal/ubuntu resolute/main amd64 busybox-initramfs amd64 1:1.37.0-7ubuntu1 [191 kB] 80s Get:57 http://ftpmaster.internal/ubuntu resolute/main amd64 hwdata all 0.394-1build1 [1566 B] 80s Get:58 http://ftpmaster.internal/ubuntu resolute/main amd64 pnp.ids all 0.394-1build1 [29.6 kB] 80s Get:59 http://ftpmaster.internal/ubuntu resolute/main amd64 libdrm-amdgpu1 amd64 2.4.131-1 [23.2 kB] 80s Get:60 http://ftpmaster.internal/ubuntu resolute/main amd64 libevent-core-2.1-7t64 amd64 2.1.12-stable-10build2 [93.1 kB] 80s Get:61 http://ftpmaster.internal/ubuntu resolute/main amd64 libgdbm-compat4t64 amd64 1.26-1build1 [6796 B] 80s Get:62 http://ftpmaster.internal/ubuntu resolute/main amd64 libgudev-1.0-0 amd64 1:238-7build1 [15.9 kB] 80s Get:63 http://ftpmaster.internal/ubuntu resolute/main amd64 libnpth0t64 amd64 1.8-3build1 [9302 B] 80s Get:64 http://ftpmaster.internal/ubuntu resolute/main amd64 libonig5 amd64 6.9.10-1build1 [174 kB] 80s Get:65 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-minimal amd64 3.14.2-1 [920 kB] 81s Get:66 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14-stdlib amd64 3.14.2-1 [2398 kB] 81s Get:67 http://ftpmaster.internal/ubuntu resolute/main amd64 libpython3.14 amd64 3.14.2-1 [2568 kB] 81s Get:68 http://ftpmaster.internal/ubuntu resolute/main amd64 libwrap0 amd64 7.6.q-36build2 [48.5 kB] 81s Get:69 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-modules-6.19.0-3-generic amd64 6.19.0-3.3 [171 MB] 84s Get:70 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-6.19.0-3-generic amd64 6.19.0-3.3+1 [16.8 MB] 85s Get:71 http://ftpmaster.internal/ubuntu resolute/main amd64 amd64-microcode amd64 3.20251202.1ubuntu1 [459 kB] 85s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-generic amd64 6.19.0-3.3 [1698 B] 85s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-generic amd64 6.19.0-3.3 [12.2 kB] 85s Get:74 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-virtual amd64 6.19.0-3.3 [1700 B] 85s Get:75 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-virtual amd64 6.19.0-3.3 [12.1 kB] 85s Get:76 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-virtual amd64 6.19.0-3.3 [1646 B] 85s Get:77 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3 all 6.19.0-3.3 [14.9 MB] 85s Get:78 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3-generic amd64 6.19.0-3.3 [4330 kB] 85s Get:79 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-generic amd64 6.19.0-3.3 [12.0 kB] 85s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-perf amd64 6.19.0-3.3 [4480 kB] 85s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-common all 6.19.0-3.3 [345 kB] 85s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3 amd64 6.19.0-3.3 [1455 kB] 85s Get:83 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3-generic amd64 6.19.0-3.3 [1612 B] 85s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 patch amd64 2.8-2build1 [95.7 kB] 85s Get:85 http://ftpmaster.internal/ubuntu resolute/main amd64 pollinate all 4.33-4ubuntu5 [14.0 kB] 85s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-referencing all 0.36.2-1ubuntu2 [22.2 kB] 85s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-kernel-accessories amd64 1.564 [13.1 kB] 85s dpkg-preconfigure: unable to re-open stdin: No such file or directory 85s Fetched 233 MB in 5s (44.9 MB/s) 85s (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 ... 83957 files and directories currently installed.) 85s Preparing to unpack .../debianutils_5.23.2build1_amd64.deb ... 85s Unpacking debianutils (5.23.2build1) over (5.23.2) ... 86s Setting up debianutils (5.23.2build1) ... 86s (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 ... 83957 files and directories currently installed.) 86s Preparing to unpack .../dash_0.5.12-12ubuntu3_amd64.deb ... 86s Unpacking dash (0.5.12-12ubuntu3) over (0.5.12-12ubuntu2) ... 86s Setting up dash (0.5.12-12ubuntu3) ... 86s (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 ... 83957 files and directories currently installed.) 86s Preparing to unpack .../findutils_4.10.0-3build2_amd64.deb ... 86s Unpacking findutils (4.10.0-3build2) over (4.10.0-3build1) ... 86s Setting up findutils (4.10.0-3build2) ... 86s (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 ... 83957 files and directories currently installed.) 86s Preparing to unpack .../sed_4.9-2build3_amd64.deb ... 86s Unpacking sed (4.9-2build3) over (4.9-2build2) ... 86s Setting up sed (4.9-2build3) ... 86s (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 ... 83957 files and directories currently installed.) 86s Preparing to unpack .../tar_1.35+dfsg-3.1build2_amd64.deb ... 86s Unpacking tar (1.35+dfsg-3.1build2) over (1.35+dfsg-3.1build1) ... 86s Setting up tar (1.35+dfsg-3.1build2) ... 86s (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 ... 83957 files and directories currently installed.) 86s Preparing to unpack .../libattr1_1%3a2.5.2-3build2_amd64.deb ... 86s Unpacking libattr1:amd64 (1:2.5.2-3build2) over (1:2.5.2-3build1) ... 86s Setting up libattr1:amd64 (1:2.5.2-3build2) ... 86s (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 ... 83957 files and directories currently installed.) 86s Preparing to unpack .../00-libbsd0_0.12.2-2build2_amd64.deb ... 86s Unpacking libbsd0:amd64 (0.12.2-2build2) over (0.12.2-2build1) ... 86s Preparing to unpack .../01-mawk_1.3.4.20260129-1_amd64.deb ... 86s Unpacking mawk (1.3.4.20260129-1) over (1.3.4.20250131-2) ... 86s Preparing to unpack .../02-libapt-pkg7.0_3.1.15_amd64.deb ... 86s Unpacking libapt-pkg7.0:amd64 (3.1.15) over (3.1.14) ... 86s Preparing to unpack .../03-apt_3.1.15_amd64.deb ... 86s Unpacking apt (3.1.15) over (3.1.14) ... 86s Preparing to unpack .../04-dbus-system-bus-common_1.16.2-2ubuntu3_all.deb ... 86s Unpacking dbus-system-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 86s Preparing to unpack .../05-dbus-session-bus-common_1.16.2-2ubuntu3_all.deb ... 86s Unpacking dbus-session-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 86s Preparing to unpack .../06-dbus-user-session_1.16.2-2ubuntu3_amd64.deb ... 86s Unpacking dbus-user-session (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 86s Preparing to unpack .../07-dbus-daemon_1.16.2-2ubuntu3_amd64.deb ... 86s Unpacking dbus-daemon (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 86s Preparing to unpack .../08-dbus-bin_1.16.2-2ubuntu3_amd64.deb ... 87s Unpacking dbus-bin (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 87s Preparing to unpack .../09-dbus_1.16.2-2ubuntu3_amd64.deb ... 87s Unpacking dbus (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 87s Preparing to unpack .../10-libdbus-1-3_1.16.2-2ubuntu3_amd64.deb ... 87s Unpacking libdbus-1-3:amd64 (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 87s Preparing to unpack .../11-libdevmapper1.02.1_2%3a1.02.205-2ubuntu3_amd64.deb ... 87s Unpacking libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 87s Preparing to unpack .../12-dmsetup_2%3a1.02.205-2ubuntu3_amd64.deb ... 87s Unpacking dmsetup (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 87s Preparing to unpack .../13-ethtool_1%3a6.15-3build1_amd64.deb ... 87s Unpacking ethtool (1:6.15-3build1) over (1:6.15-3) ... 87s Preparing to unpack .../14-gir1.2-girepository-3.0_2.87.2-2_amd64.deb ... 87s Unpacking gir1.2-girepository-3.0:amd64 (2.87.2-2) over (2.86.3-4) ... 87s Preparing to unpack .../15-libgirepository-2.0-0_2.87.2-2_amd64.deb ... 87s Unpacking libgirepository-2.0-0:amd64 (2.87.2-2) over (2.86.3-4) ... 87s Preparing to unpack .../16-gir1.2-glib-2.0_2.87.2-2_amd64.deb ... 87s Unpacking gir1.2-glib-2.0:amd64 (2.87.2-2) over (2.86.3-4) ... 87s Preparing to unpack .../17-libglib2.0-0t64_2.87.2-2_amd64.deb ... 87s Unpacking libglib2.0-0t64:amd64 (2.87.2-2) over (2.86.3-4) ... 87s Preparing to unpack .../18-less_668-1build1_amd64.deb ... 87s Unpacking less (668-1build1) over (668-1) ... 87s Preparing to unpack .../19-libbpf1_1%3a1.6.2-1build1_amd64.deb ... 87s Unpacking libbpf1:amd64 (1:1.6.2-1build1) over (1:1.6.2-1) ... 87s Preparing to unpack .../20-libglib2.0-data_2.87.2-2_all.deb ... 87s Unpacking libglib2.0-data (2.87.2-2) over (2.86.3-4) ... 87s Preparing to unpack .../21-libidn2-0_2.3.8-4build1_amd64.deb ... 87s Unpacking libidn2-0:amd64 (2.3.8-4build1) over (2.3.8-4) ... 87s Preparing to unpack .../22-libkeyutils1_1.6.3-6ubuntu3_amd64.deb ... 87s Unpacking libkeyutils1:amd64 (1.6.3-6ubuntu3) over (1.6.3-6ubuntu2) ... 87s Preparing to unpack .../23-python3-linkify-it_2.0.3-1ubuntu3_all.deb ... 87s Unpacking python3-linkify-it (2.0.3-1ubuntu3) over (2.0.3-1ubuntu2) ... 87s Preparing to unpack .../24-python3-markdown-it_3.0.0-3build1_all.deb ... 87s Unpacking python3-markdown-it (3.0.0-3build1) over (3.0.0-3) ... 87s Preparing to unpack .../25-shared-mime-info_2.4-5build3_amd64.deb ... 87s Unpacking shared-mime-info (2.4-5build3) over (2.4-5build2) ... 87s Preparing to unpack .../26-busybox-static_1%3a1.37.0-7ubuntu1_amd64.deb ... 87s Unpacking busybox-static (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 87s Preparing to unpack .../27-libdrm-common_2.4.131-1_all.deb ... 87s Unpacking libdrm-common (2.4.131-1) over (2.4.129-1) ... 87s Preparing to unpack .../28-libdrm2_2.4.131-1_amd64.deb ... 87s Unpacking libdrm2:amd64 (2.4.131-1) over (2.4.129-1) ... 87s Preparing to unpack .../29-libgdbm6t64_1.26-1build1_amd64.deb ... 87s Unpacking libgdbm6t64:amd64 (1.26-1build1) over (1.26-1) ... 87s Preparing to unpack .../30-libgpm2_1.20.7-12build1_amd64.deb ... 87s Unpacking libgpm2:amd64 (1.20.7-12build1) over (1.20.7-12) ... 87s Preparing to unpack .../31-libjansson4_2.14-2build4_amd64.deb ... 87s Unpacking libjansson4:amd64 (2.14-2build4) over (2.14-2build3) ... 87s Preparing to unpack .../32-lsof_4.99.4+dfsg-2build2_amd64.deb ... 87s Unpacking lsof (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 87s Preparing to unpack .../33-liblsof0_4.99.4+dfsg-2build2_amd64.deb ... 87s Unpacking liblsof0 (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 87s Preparing to unpack .../34-libmaxminddb0_1.12.2-1build2_amd64.deb ... 87s Unpacking libmaxminddb0:amd64 (1.12.2-1build2) over (1.12.2-1build1) ... 88s Preparing to unpack .../35-libnetfilter-conntrack3_1.1.1-1_amd64.deb ... 88s Unpacking libnetfilter-conntrack3:amd64 (1.1.1-1) over (1.1.0-1build1) ... 88s Preparing to unpack .../36-libpcap0.8t64_1.10.5-2ubuntu3_amd64.deb ... 88s Unpacking libpcap0.8t64:amd64 (1.10.5-2ubuntu3) over (1.10.5-2ubuntu2) ... 88s Preparing to unpack .../37-pciutils_1%3a3.14.0-1build2_amd64.deb ... 88s Unpacking pciutils (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 88s Preparing to unpack .../38-libpci3_1%3a3.14.0-1build2_amd64.deb ... 88s Unpacking libpci3:amd64 (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 88s Preparing to unpack .../39-libsensors-config_1%3a3.6.2-2build1_all.deb ... 88s Unpacking libsensors-config (1:3.6.2-2build1) over (1:3.6.2-2) ... 88s Preparing to unpack .../40-libsensors5_1%3a3.6.2-2build1_amd64.deb ... 88s Unpacking libsensors5:amd64 (1:3.6.2-2build1) over (1:3.6.2-2) ... 88s Preparing to unpack .../41-libusb-1.0-0_2%3a1.0.29-2build1_amd64.deb ... 88s Unpacking libusb-1.0-0:amd64 (2:1.0.29-2build1) over (2:1.0.29-2) ... 88s Preparing to unpack .../42-libxau6_1%3a1.0.11-1build2_amd64.deb ... 88s Unpacking libxau6:amd64 (1:1.0.11-1build2) over (1:1.0.11-1build1) ... 88s Preparing to unpack .../43-libxkbcommon0_1.13.1-1_amd64.deb ... 88s Unpacking libxkbcommon0:amd64 (1.13.1-1) over (1.12.3-1) ... 88s Preparing to unpack .../44-man-db_2.13.1-1build1_amd64.deb ... 88s Unpacking man-db (2.13.1-1build1) over (2.13.1-1) ... 88s Preparing to unpack .../45-tcpdump_4.99.5-2ubuntu3_amd64.deb ... 88s Unpacking tcpdump (4.99.5-2ubuntu3) over (4.99.5-2ubuntu2) ... 88s Preparing to unpack .../46-ubuntu-standard_1.564_amd64.deb ... 88s Unpacking ubuntu-standard (1.564) over (1.563) ... 88s Preparing to unpack .../47-3cpio_0.14.0-1ubuntu1_amd64.deb ... 88s Unpacking 3cpio (0.14.0-1ubuntu1) over (0.13.1-1ubuntu1) ... 88s Preparing to unpack .../48-bpftool_7.7.0+6.19.0-3.3_amd64.deb ... 88s Unpacking bpftool (7.7.0+6.19.0-3.3) over (7.7.0+6.18.0-9.9) ... 88s Preparing to unpack .../49-busybox-initramfs_1%3a1.37.0-7ubuntu1_amd64.deb ... 88s Unpacking busybox-initramfs (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 88s Preparing to unpack .../50-hwdata_0.394-1build1_all.deb ... 88s Unpacking hwdata (0.394-1build1) over (0.394-1) ... 88s Preparing to unpack .../51-pnp.ids_0.394-1build1_all.deb ... 88s Unpacking pnp.ids (0.394-1build1) over (0.394-1) ... 88s Preparing to unpack .../52-libdrm-amdgpu1_2.4.131-1_amd64.deb ... 88s Unpacking libdrm-amdgpu1:amd64 (2.4.131-1) over (2.4.129-1) ... 88s Preparing to unpack .../53-libevent-core-2.1-7t64_2.1.12-stable-10build2_amd64.deb ... 88s Unpacking libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) over (2.1.12-stable-10build1) ... 88s Preparing to unpack .../54-libgdbm-compat4t64_1.26-1build1_amd64.deb ... 88s Unpacking libgdbm-compat4t64:amd64 (1.26-1build1) over (1.26-1) ... 88s Preparing to unpack .../55-libgudev-1.0-0_1%3a238-7build1_amd64.deb ... 88s Unpacking libgudev-1.0-0:amd64 (1:238-7build1) over (1:238-7) ... 88s Preparing to unpack .../56-libnpth0t64_1.8-3build1_amd64.deb ... 88s Unpacking libnpth0t64:amd64 (1.8-3build1) over (1.8-3) ... 88s Preparing to unpack .../57-libonig5_6.9.10-1build1_amd64.deb ... 88s Unpacking libonig5:amd64 (6.9.10-1build1) over (6.9.10-1) ... 88s Selecting previously unselected package libpython3.14-minimal:amd64. 88s Preparing to unpack .../58-libpython3.14-minimal_3.14.2-1_amd64.deb ... 88s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 88s Selecting previously unselected package libpython3.14-stdlib:amd64. 88s Preparing to unpack .../59-libpython3.14-stdlib_3.14.2-1_amd64.deb ... 88s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 88s Selecting previously unselected package libpython3.14:amd64. 88s Preparing to unpack .../60-libpython3.14_3.14.2-1_amd64.deb ... 88s Unpacking libpython3.14:amd64 (3.14.2-1) ... 89s Preparing to unpack .../61-libwrap0_7.6.q-36build2_amd64.deb ... 89s Unpacking libwrap0:amd64 (7.6.q-36build2) over (7.6.q-36build1) ... 89s Selecting previously unselected package linux-modules-6.19.0-3-generic. 89s Preparing to unpack .../62-linux-modules-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 89s Unpacking linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 89s Selecting previously unselected package linux-image-6.19.0-3-generic. 89s Preparing to unpack .../63-linux-image-6.19.0-3-generic_6.19.0-3.3+1_amd64.deb ... 89s Unpacking linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 89s Preparing to unpack .../64-amd64-microcode_3.20251202.1ubuntu1_amd64.deb ... 89s Unpacking amd64-microcode (3.20251202.1ubuntu1) over (3.20250708.1ubuntu1) ... 89s Preparing to unpack .../65-linux-generic_6.19.0-3.3_amd64.deb ... 89s Unpacking linux-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 89s Preparing to unpack .../66-linux-image-generic_6.19.0-3.3_amd64.deb ... 89s Unpacking linux-image-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 90s Preparing to unpack .../67-linux-virtual_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 90s Preparing to unpack .../68-linux-image-virtual_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-image-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 90s Preparing to unpack .../69-linux-headers-virtual_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-headers-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 90s Selecting previously unselected package linux-headers-6.19.0-3. 90s Preparing to unpack .../70-linux-headers-6.19.0-3_6.19.0-3.3_all.deb ... 90s Unpacking linux-headers-6.19.0-3 (6.19.0-3.3) ... 91s Selecting previously unselected package linux-headers-6.19.0-3-generic. 91s Preparing to unpack .../71-linux-headers-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 91s Unpacking linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 91s Preparing to unpack .../72-linux-headers-generic_6.19.0-3.3_amd64.deb ... 91s Unpacking linux-headers-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 91s Preparing to unpack .../73-linux-perf_6.19.0-3.3_amd64.deb ... 91s Unpacking linux-perf (6.19.0-3.3) over (6.18.0-9.9) ... 91s Preparing to unpack .../74-linux-tools-common_6.19.0-3.3_all.deb ... 91s Unpacking linux-tools-common (6.19.0-3.3) over (6.18.0-9.9) ... 91s Selecting previously unselected package linux-tools-6.19.0-3. 91s Preparing to unpack .../75-linux-tools-6.19.0-3_6.19.0-3.3_amd64.deb ... 91s Unpacking linux-tools-6.19.0-3 (6.19.0-3.3) ... 91s Selecting previously unselected package linux-tools-6.19.0-3-generic. 91s Preparing to unpack .../76-linux-tools-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 91s Unpacking linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 91s Preparing to unpack .../77-patch_2.8-2build1_amd64.deb ... 91s Unpacking patch (2.8-2build1) over (2.8-2) ... 92s Preparing to unpack .../78-pollinate_4.33-4ubuntu5_all.deb ... 92s Unpacking pollinate (4.33-4ubuntu5) over (4.33-4ubuntu4) ... 92s Preparing to unpack .../79-python3-referencing_0.36.2-1ubuntu2_all.deb ... 92s Unpacking python3-referencing (0.36.2-1ubuntu2) over (0.36.2-1ubuntu1) ... 92s Preparing to unpack .../80-ubuntu-kernel-accessories_1.564_amd64.deb ... 92s Unpacking ubuntu-kernel-accessories (1.564) over (1.563) ... 92s Setting up 3cpio (0.14.0-1ubuntu1) ... 92s Setting up libxau6:amd64 (1:1.0.11-1build2) ... 92s Setting up libnpth0t64:amd64 (1.8-3build1) ... 92s Setting up libkeyutils1:amd64 (1.6.3-6ubuntu3) ... 92s Setting up ubuntu-kernel-accessories (1.564) ... 92s Setting up libgpm2:amd64 (1.20.7-12build1) ... 92s Setting up libgdbm6t64:amd64 (1.26-1build1) ... 92s Setting up linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 93s Setting up libgdbm-compat4t64:amd64 (1.26-1build1) ... 93s Setting up bpftool (7.7.0+6.19.0-3.3) ... 93s Setting up liblsof0 (4.99.4+dfsg-2build2) ... 93s Setting up libmaxminddb0:amd64 (1.12.2-1build2) ... 93s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 93s Setting up libsensors-config (1:3.6.2-2build1) ... 93s Setting up less (668-1build1) ... 93s Setting up linux-headers-6.19.0-3 (6.19.0-3.3) ... 93s Setting up libidn2-0:amd64 (2.3.8-4build1) ... 93s Setting up amd64-microcode (3.20251202.1ubuntu1) ... 93s amd64-microcode: microcode will be updated at next boot 93s Setting up man-db (2.13.1-1build1) ... 93s Updating database of manual pages ... 94s man-db.service is a disabled or a static unit not running, not starting it. 94s Setting up libjansson4:amd64 (2.14-2build4) ... 94s Setting up libglib2.0-0t64:amd64 (2.87.2-2) ... 94s No schema files found: doing nothing. 94s Setting up libglib2.0-data (2.87.2-2) ... 94s Setting up pollinate (4.33-4ubuntu5) ... 105s Setting up busybox-static (1:1.37.0-7ubuntu1) ... 105s Setting up libwrap0:amd64 (7.6.q-36build2) ... 105s Setting up linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 106s I: /boot/vmlinuz is now a symlink to vmlinuz-6.19.0-3-generic 106s I: /boot/initrd.img is now a symlink to initrd.img-6.19.0-3-generic 106s Setting up libdbus-1-3:amd64 (1.16.2-2ubuntu3) ... 106s Setting up shared-mime-info (2.4-5build3) ... 107s Setting up patch (2.8-2build1) ... 107s Setting up gir1.2-glib-2.0:amd64 (2.87.2-2) ... 107s Setting up libsensors5:amd64 (1:3.6.2-2build1) ... 107s Setting up busybox-initramfs (1:1.37.0-7ubuntu1) ... 107s Setting up lsof (4.99.4+dfsg-2build2) ... 107s Setting up libpci3:amd64 (1:3.14.0-1build2) ... 107s Setting up libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) ... 107s Setting up dmsetup (2:1.02.205-2ubuntu3) ... 107s Setting up libnetfilter-conntrack3:amd64 (1.1.1-1) ... 107s Setting up pnp.ids (0.394-1build1) ... 107s Setting up dbus-session-bus-common (1.16.2-2ubuntu3) ... 107s Setting up python3-linkify-it (2.0.3-1ubuntu3) ... 107s Setting up libpcap0.8t64:amd64 (1.10.5-2ubuntu3) ... 107s Setting up mawk (1.3.4.20260129-1) ... 107s Setting up libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) ... 107s Setting up libusb-1.0-0:amd64 (2:1.0.29-2build1) ... 107s Setting up libapt-pkg7.0:amd64 (3.1.15) ... 107s Setting up linux-image-virtual (6.19.0-3.3) ... 107s Setting up dbus-system-bus-common (1.16.2-2ubuntu3) ... 107s Setting up libbsd0:amd64 (0.12.2-2build2) ... 107s Setting up libdrm-common (2.4.131-1) ... 107s Setting up dbus-bin (1.16.2-2ubuntu3) ... 107s Setting up libonig5:amd64 (6.9.10-1build1) ... 107s Setting up libgudev-1.0-0:amd64 (1:238-7build1) ... 107s Setting up libbpf1:amd64 (1:1.6.2-1build1) ... 107s Setting up ethtool (1:6.15-3build1) ... 107s Setting up python3-referencing (0.36.2-1ubuntu2) ... 107s Setting up libxkbcommon0:amd64 (1.13.1-1) ... 107s Setting up linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 107s Setting up tcpdump (4.99.5-2ubuntu3) ... 107s Setting up linux-image-generic (6.19.0-3.3) ... 107s Setting up apt (3.1.15) ... 108s Setting up libgirepository-2.0-0:amd64 (2.87.2-2) ... 108s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 108s Setting up linux-headers-generic (6.19.0-3.3) ... 108s Setting up dbus-daemon (1.16.2-2ubuntu3) ... 108s Setting up gir1.2-girepository-3.0:amd64 (2.87.2-2) ... 108s Setting up hwdata (0.394-1build1) ... 108s Setting up dbus-user-session (1.16.2-2ubuntu3) ... 108s Setting up dbus (1.16.2-2ubuntu3) ... 108s A reboot is required to replace the running dbus-daemon. 108s Please reboot the system when convenient. 108s Setting up pciutils (1:3.14.0-1build2) ... 108s Setting up python3-markdown-it (3.0.0-3build1) ... 108s Setting up libdrm2:amd64 (2.4.131-1) ... 108s Setting up libpython3.14:amd64 (3.14.2-1) ... 108s Setting up linux-tools-common (6.19.0-3.3) ... 108s Setting up libdrm-amdgpu1:amd64 (2.4.131-1) ... 108s Setting up linux-headers-virtual (6.19.0-3.3) ... 108s Setting up linux-generic (6.19.0-3.3) ... 108s Setting up linux-tools-6.19.0-3 (6.19.0-3.3) ... 108s Setting up ubuntu-standard (1.564) ... 108s Setting up linux-virtual (6.19.0-3.3) ... 108s Setting up linux-perf (6.19.0-3.3) ... 108s Setting up linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 108s Processing triggers for debianutils (5.23.2build1) ... 108s Processing triggers for install-info (7.2-5) ... 108s Processing triggers for initramfs-tools (0.150ubuntu7) ... 108s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 113s Processing triggers for libc-bin (2.42-2ubuntu4) ... 113s Processing triggers for linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 113s /etc/kernel/postinst.d/initramfs-tools: 113s update-initramfs: Generating /boot/initrd.img-6.19.0-3-generic 117s /etc/kernel/postinst.d/zz-update-grub: 117s Sourcing file `/etc/default/grub' 117s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 117s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 117s Generating grub configuration file ... 117s Found linux image: /boot/vmlinuz-6.19.0-3-generic 117s Found initrd image: /boot/initrd.img-6.19.0-3-generic 117s Found linux image: /boot/vmlinuz-6.18.0-9-generic 117s Found initrd image: /boot/initrd.img-6.18.0-9-generic 117s Warning: os-prober will not be executed to detect other bootable partitions. 117s Systems on them will not be added to the GRUB boot configuration. 117s Check GRUB_DISABLE_OS_PROBER documentation entry. 117s Adding boot menu entry for UEFI Firmware Settings ... 117s done 117s autopkgtest [05:18:38]: upgrading testbed (apt dist-upgrade and autopurge) 118s Reading package lists... 118s Building dependency tree... 118s Reading state information... 118s Calculating upgrade... 118s The following package was automatically installed and is no longer required: 118s libpython3.13 118s Use 'sudo apt autoremove' to remove it. 118s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 118s Reading package lists... 118s Building dependency tree... 118s Reading state information... 119s Solving dependencies... 119s The following packages will be REMOVED: 119s libpython3.13* 119s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 119s After this operation, 7599 kB disk space will be freed. 119s (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 ... 125265 files and directories currently installed.) 119s Removing libpython3.13:amd64 (3.13.11-1) ... 119s Processing triggers for libc-bin (2.42-2ubuntu4) ... 119s autopkgtest [05:18:40]: rebooting testbed after setup commands that affected boot 147s autopkgtest [05:19:08]: testbed running kernel: Linux 6.19.0-3-generic #3-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 23 20:01:24 UTC 2026 149s autopkgtest [05:19:10]: @@@@@@@@@@@@@@@@@@@@ apt-source sabnzbdplus 150s Get:1 http://ftpmaster.internal/ubuntu resolute/multiverse sabnzbdplus 4.5.4+dfsg-4 (dsc) [2219 B] 150s Get:2 http://ftpmaster.internal/ubuntu resolute/multiverse sabnzbdplus 4.5.4+dfsg-4 (tar) [5730 kB] 150s Get:3 http://ftpmaster.internal/ubuntu resolute/multiverse sabnzbdplus 4.5.4+dfsg-4 (diff) [30.5 kB] 150s gpgv: Signature made Tue Jan 27 08:38:44 2026 UTC 150s gpgv: using RSA key 77C9619C49D6A2CDCDF2FFAA428304A1748DCC7A 150s gpgv: Can't check signature: No public key 150s dpkg-source: warning: cannot verify inline signature for ./sabnzbdplus_4.5.4+dfsg-4.dsc: no acceptable signature found 151s autopkgtest [05:19:12]: testing package sabnzbdplus version 4.5.4+dfsg-4 151s autopkgtest [05:19:12]: build not needed 152s autopkgtest [05:19:13]: test basic-runs: preparing testbed 152s Reading package lists... 152s Building dependency tree... 152s Reading state information... 152s Solving dependencies... 152s The following NEW packages will be installed: 152s 7zip apprise fonts-glyphicons-halflings libgomp1 libjs-bootstrap 152s libjs-jquery libjs-jquery-ui libjs-moment par2 python3-babelfish 152s python3-cheetah python3-cheroot python3-cherrypy3 python3-click 152s python3-feedparser python3-guessit python3-jaraco.collections 152s python3-markdown python3-orjson python3-portend python3-puremagic 152s python3-rarfile python3-rebulk python3-requests-oauthlib python3-sabctools 152s python3-sgmllib3k python3-socks python3-tempora python3-toposort 152s python3-zc.lockfile sabnzbdplus unrar 152s 0 upgraded, 32 newly installed, 0 to remove and 0 not upgraded. 152s Need to get 6343 kB of archives. 152s After this operation, 28.2 MB of additional disk space will be used. 152s Get:1 http://ftpmaster.internal/ubuntu resolute/universe amd64 7zip amd64 25.01+dfsg-5 [2008 kB] 152s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-click all 8.2.0+0.really.8.1.8-1build1 [80.2 kB] 152s Get:3 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-markdown all 3.10-2 [76.0 kB] 152s Get:4 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-requests-oauthlib all 1.3.1-2 [19.0 kB] 152s Get:5 http://ftpmaster.internal/ubuntu resolute/universe amd64 apprise all 1.9.3-1 [825 kB] 152s Get:6 http://ftpmaster.internal/ubuntu resolute/universe amd64 fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-6 [119 kB] 152s Get:7 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-bootstrap all 3.4.1+dfsg-6 [129 kB] 152s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 libjs-jquery all 3.7.1+dfsg+~3.5.33-1build1 [321 kB] 152s Get:9 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-jquery-ui all 1.13.2+dfsg-1build1 [251 kB] 152s Get:10 http://ftpmaster.internal/ubuntu resolute/universe amd64 libjs-moment all 2.29.4+ds-1 [147 kB] 152s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 libgomp1 amd64 15.2.0-12ubuntu1 [151 kB] 152s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 par2 amd64 1.1.1-1 [106 kB] 153s Get:13 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-cheetah amd64 3.4.0-1build2 [141 kB] 153s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 153s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-jaraco.collections all 5.1.0-1build1 [12.9 kB] 153s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-tempora all 5.7.0-2build1 [14.9 kB] 153s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-portend all 3.2.0-1build1 [7662 B] 153s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-zc.lockfile all 4.0-2 [7884 B] 153s Get:19 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-cherrypy3 all 18.10.0-2 [211 kB] 153s Get:20 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-sgmllib3k all 1.0.0-5build1 [8888 B] 153s Get:21 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-feedparser all 6.0.12-1 [45.2 kB] 153s Get:22 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-babelfish all 0.6.1-1build1 [79.0 kB] 153s Get:23 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-toposort all 1.10-2build1 [6454 B] 153s Get:24 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-rebulk all 3.3.0-4 [50.4 kB] 153s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-guessit all 3.8.0-4build1 [95.1 kB] 153s Get:26 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-puremagic all 1.30-1 [39.5 kB] 153s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-rarfile all 4.2-3 [29.2 kB] 153s Get:28 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-sabctools amd64 8.2.6-2 [69.0 kB] 153s Get:29 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-socks all 1.7.1+dfsg-1build1 [21.9 kB] 153s Get:30 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-orjson amd64 3.11.5-1 [266 kB] 153s Get:31 http://ftpmaster.internal/ubuntu resolute/multiverse amd64 unrar amd64 1:7.2.4-1 [186 kB] 153s Get:32 http://ftpmaster.internal/ubuntu resolute/multiverse amd64 sabnzbdplus all 4.5.4+dfsg-4 [736 kB] 153s Fetched 6343 kB in 0s (16.6 MB/s) 153s Selecting previously unselected package 7zip. 153s (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 ... 125261 files and directories currently installed.) 153s Preparing to unpack .../00-7zip_25.01+dfsg-5_amd64.deb ... 153s Unpacking 7zip (25.01+dfsg-5) ... 153s Selecting previously unselected package python3-click. 153s Preparing to unpack .../01-python3-click_8.2.0+0.really.8.1.8-1build1_all.deb ... 153s Unpacking python3-click (8.2.0+0.really.8.1.8-1build1) ... 153s Selecting previously unselected package python3-markdown. 153s Preparing to unpack .../02-python3-markdown_3.10-2_all.deb ... 153s Unpacking python3-markdown (3.10-2) ... 153s Selecting previously unselected package python3-requests-oauthlib. 153s Preparing to unpack .../03-python3-requests-oauthlib_1.3.1-2_all.deb ... 153s Unpacking python3-requests-oauthlib (1.3.1-2) ... 153s Selecting previously unselected package apprise. 153s Preparing to unpack .../04-apprise_1.9.3-1_all.deb ... 153s Unpacking apprise (1.9.3-1) ... 153s Selecting previously unselected package fonts-glyphicons-halflings. 153s Preparing to unpack .../05-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-6_all.deb ... 153s Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-6) ... 153s Selecting previously unselected package libjs-bootstrap. 153s Preparing to unpack .../06-libjs-bootstrap_3.4.1+dfsg-6_all.deb ... 153s Unpacking libjs-bootstrap (3.4.1+dfsg-6) ... 153s Selecting previously unselected package libjs-jquery. 153s Preparing to unpack .../07-libjs-jquery_3.7.1+dfsg+~3.5.33-1build1_all.deb ... 153s Unpacking libjs-jquery (3.7.1+dfsg+~3.5.33-1build1) ... 153s Selecting previously unselected package libjs-jquery-ui. 153s Preparing to unpack .../08-libjs-jquery-ui_1.13.2+dfsg-1build1_all.deb ... 153s Unpacking libjs-jquery-ui (1.13.2+dfsg-1build1) ... 153s Selecting previously unselected package libjs-moment. 153s Preparing to unpack .../09-libjs-moment_2.29.4+ds-1_all.deb ... 153s Unpacking libjs-moment (2.29.4+ds-1) ... 153s Selecting previously unselected package libgomp1:amd64. 153s Preparing to unpack .../10-libgomp1_15.2.0-12ubuntu1_amd64.deb ... 153s Unpacking libgomp1:amd64 (15.2.0-12ubuntu1) ... 153s Selecting previously unselected package par2. 153s Preparing to unpack .../11-par2_1.1.1-1_amd64.deb ... 153s Unpacking par2 (1.1.1-1) ... 153s Selecting previously unselected package python3-cheetah. 153s Preparing to unpack .../12-python3-cheetah_3.4.0-1build2_amd64.deb ... 153s Unpacking python3-cheetah (3.4.0-1build2) ... 153s Selecting previously unselected package python3-cheroot. 153s Preparing to unpack .../13-python3-cheroot_11.1.2+ds1-1_all.deb ... 153s Unpacking python3-cheroot (11.1.2+ds1-1) ... 153s Selecting previously unselected package python3-jaraco.collections. 153s Preparing to unpack .../14-python3-jaraco.collections_5.1.0-1build1_all.deb ... 153s Unpacking python3-jaraco.collections (5.1.0-1build1) ... 153s Selecting previously unselected package python3-tempora. 153s Preparing to unpack .../15-python3-tempora_5.7.0-2build1_all.deb ... 153s Unpacking python3-tempora (5.7.0-2build1) ... 153s Selecting previously unselected package python3-portend. 153s Preparing to unpack .../16-python3-portend_3.2.0-1build1_all.deb ... 153s Unpacking python3-portend (3.2.0-1build1) ... 153s Selecting previously unselected package python3-zc.lockfile. 153s Preparing to unpack .../17-python3-zc.lockfile_4.0-2_all.deb ... 153s Unpacking python3-zc.lockfile (4.0-2) ... 153s Selecting previously unselected package python3-cherrypy3. 153s Preparing to unpack .../18-python3-cherrypy3_18.10.0-2_all.deb ... 153s Unpacking python3-cherrypy3 (18.10.0-2) ... 153s Selecting previously unselected package python3-sgmllib3k. 153s Preparing to unpack .../19-python3-sgmllib3k_1.0.0-5build1_all.deb ... 153s Unpacking python3-sgmllib3k (1.0.0-5build1) ... 153s Selecting previously unselected package python3-feedparser. 153s Preparing to unpack .../20-python3-feedparser_6.0.12-1_all.deb ... 153s Unpacking python3-feedparser (6.0.12-1) ... 153s Selecting previously unselected package python3-babelfish. 153s Preparing to unpack .../21-python3-babelfish_0.6.1-1build1_all.deb ... 153s Unpacking python3-babelfish (0.6.1-1build1) ... 153s Selecting previously unselected package python3-toposort. 153s Preparing to unpack .../22-python3-toposort_1.10-2build1_all.deb ... 153s Unpacking python3-toposort (1.10-2build1) ... 153s Selecting previously unselected package python3-rebulk. 153s Preparing to unpack .../23-python3-rebulk_3.3.0-4_all.deb ... 153s Unpacking python3-rebulk (3.3.0-4) ... 153s Selecting previously unselected package python3-guessit. 153s Preparing to unpack .../24-python3-guessit_3.8.0-4build1_all.deb ... 153s Unpacking python3-guessit (3.8.0-4build1) ... 153s Selecting previously unselected package python3-puremagic. 153s Preparing to unpack .../25-python3-puremagic_1.30-1_all.deb ... 153s Unpacking python3-puremagic (1.30-1) ... 153s Selecting previously unselected package python3-rarfile. 153s Preparing to unpack .../26-python3-rarfile_4.2-3_all.deb ... 153s Unpacking python3-rarfile (4.2-3) ... 153s Selecting previously unselected package python3-sabctools. 153s Preparing to unpack .../27-python3-sabctools_8.2.6-2_amd64.deb ... 153s Unpacking python3-sabctools (8.2.6-2) ... 153s Selecting previously unselected package python3-socks. 153s Preparing to unpack .../28-python3-socks_1.7.1+dfsg-1build1_all.deb ... 153s Unpacking python3-socks (1.7.1+dfsg-1build1) ... 153s Selecting previously unselected package python3-orjson. 153s Preparing to unpack .../29-python3-orjson_3.11.5-1_amd64.deb ... 153s Unpacking python3-orjson (3.11.5-1) ... 153s Selecting previously unselected package unrar. 153s Preparing to unpack .../30-unrar_1%3a7.2.4-1_amd64.deb ... 153s Unpacking unrar (1:7.2.4-1) ... 153s Selecting previously unselected package sabnzbdplus. 153s Preparing to unpack .../31-sabnzbdplus_4.5.4+dfsg-4_all.deb ... 153s Unpacking sabnzbdplus (4.5.4+dfsg-4) ... 154s Setting up python3-jaraco.collections (5.1.0-1build1) ... 154s Setting up python3-toposort (1.10-2build1) ... 154s Setting up python3-sabctools (8.2.6-2) ... 154s Setting up python3-orjson (3.11.5-1) ... 154s Setting up python3-socks (1.7.1+dfsg-1build1) ... 154s Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-6) ... 154s Setting up python3-babelfish (0.6.1-1build1) ... 154s Setting up libjs-moment (2.29.4+ds-1) ... 154s Setting up 7zip (25.01+dfsg-5) ... 154s Setting up unrar (1:7.2.4-1) ... 154s update-alternatives: using /usr/bin/unrar-nonfree to provide /usr/bin/unrar (unrar) in auto mode 154s Setting up libgomp1:amd64 (15.2.0-12ubuntu1) ... 154s Setting up python3-click (8.2.0+0.really.8.1.8-1build1) ... 154s Setting up python3-rebulk (3.3.0-4) ... 154s Setting up python3-sgmllib3k (1.0.0-5build1) ... 154s Setting up python3-puremagic (1.30-1) ... 154s Setting up python3-cheetah (3.4.0-1build2) ... 154s Setting up par2 (1.1.1-1) ... 154s Setting up python3-cheroot (11.1.2+ds1-1) ... 154s Setting up python3-markdown (3.10-2) ... 155s Setting up python3-zc.lockfile (4.0-2) ... 155s Setting up python3-guessit (3.8.0-4build1) ... 155s Setting up python3-rarfile (4.2-3) ... 155s Setting up python3-tempora (5.7.0-2build1) ... 155s Setting up libjs-jquery (3.7.1+dfsg+~3.5.33-1build1) ... 155s Setting up libjs-bootstrap (3.4.1+dfsg-6) ... 155s Setting up python3-requests-oauthlib (1.3.1-2) ... 155s Setting up python3-feedparser (6.0.12-1) ... 155s Setting up python3-portend (3.2.0-1build1) ... 155s Setting up libjs-jquery-ui (1.13.2+dfsg-1build1) ... 155s Setting up apprise (1.9.3-1) ... 155s Setting up python3-cherrypy3 (18.10.0-2) ... 155s Setting up sabnzbdplus (4.5.4+dfsg-4) ... 156s Created symlink '/etc/systemd/system/multi-user.target.wants/sabnzbdplus.service' → '/usr/lib/systemd/system/sabnzbdplus.service'. 156s Processing triggers for man-db (2.13.1-1build1) ... 156s Processing triggers for shared-mime-info (2.4-5build3) ... 157s Processing triggers for libc-bin (2.42-2ubuntu4) ... 157s autopkgtest [05:19:18]: test basic-runs: [----------------------- 158s 158s Usage: sabnzbdplus [-f ] 158s 158s Options marked [*] are stored in the config file 158s 158s Options: 158s -f --config-file Location of config file 158s -s --server Listen on server:port [*] 158s -t --templates Template directory [*] 158s 158s -l --logging <-1..2> Set logging level (-1=off, 0=least,2= most) [*] 158s -w --weblogging Enable cherrypy access logging 158s 158s -b --browser <0..1> Auto browser launch (0= off, 1= on) [*] 158s -d --daemon Fork daemon process 158s --pid Create a PID file in the given folder (full path) 158s --pidfile Create a PID file with the given name (full path) 158s 158s -h --help Print this message 158s -v --version Print version information 158s -c --clean Remove queue, cache and logs 158s -p --pause Start in paused mode 158s --repair Add orphaned jobs from the incomplete folder to the queue 158s --repair-all Try to reconstruct the queue from the incomplete folder 158s with full data reconstruction 158s --https Port to use for HTTPS server 158s --ipv6_hosting <0|1> Listen on IPv6 address [::1] [*] 158s --inet_exposure <0..5> Set external internet access [*] 158s --no-login Start with username and password reset 158s --log-all Log all article handling (for developers) 158s --disable-file-log Logging is only written to console 158s --console Force logging to console 158s --new Run a new instance of SABnzbd 158s 158s NZB (or related) file: 158s NZB or compressed NZB file, with extension .nzb, .zip, .rar, .7z, .gz, or .bz2 158s 158s usage info finished, status = 0 158s removed directory 'settings' 158s 2026-02-09 05:19:19,186::INFO::[sabnzbdplus:1135] -------------------------------- 158s 2026-02-09 05:19:19,186::INFO::[sabnzbdplus:1136] sabnzbdplus-4.5.4 158s 2026-02-09 05:19:19,187::INFO::[sabnzbdplus:1137] Full executable path = /usr/bin/sabnzbdplus 158s 2026-02-09 05:19:19,187::INFO::[sabnzbdplus:1138] Arguments = "/usr/bin/sabnzbdplus" "--logging" "1" "--browser" "0" "--config-file" "/tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/z38fXfE9.ini" 158s 2026-02-09 05:19:19,187::INFO::[sabnzbdplus:1147] Certifi version = 2026.01.04 158s 2026-02-09 05:19:19,187::INFO::[sabnzbdplus:1148] Loaded additional certificates from /etc/ssl/certs/ca-certificates.crt 158s 2026-02-09 05:19:19,187::INFO::[sabnzbdplus:1154] Using INI file /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/z38fXfE9.ini 158s 2026-02-09 05:19:19,187::INFO::[filesystem:725] Creating directories: /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/Downloads/incomplete 158s 2026-02-09 05:19:19,187::INFO::[filesystem:725] Creating directories: /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/Downloads/complete 158s 2026-02-09 05:19:19,188::INFO::[cfg:794] Config conversion set 1 158s 2026-02-09 05:19:19,188::INFO::[cfg:830] Config conversion set 2 158s 2026-02-09 05:19:19,188::INFO::[cfg:835] Config conversion set 3 158s 2026-02-09 05:19:19,188::INFO::[cfg:846] Config conversion set 4 158s 2026-02-09 05:19:19,188::INFO::[config:999] Writing settings to INI file /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/z38fXfE9.ini 158s 2026-02-09 05:19:19,189::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/admin/totals10.sab missing 158s 2026-02-09 05:19:19,196::INFO::[postproc:141] Loading postproc queue 158s 2026-02-09 05:19:19,196::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/admin/postproc2.sab missing 158s 2026-02-09 05:19:19,196::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/admin/watched_data2.sab missing 158s 2026-02-09 05:19:19,196::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/admin/rss_data.sab missing 158s 2026-02-09 05:19:19,196::INFO::[scheduler:191] Scheduling RSS interval task every 60 min (delay=39) 158s 2026-02-09 05:19:19,196::INFO::[scheduler:200] Setting schedule for midnight auto history-purge 158s 2026-02-09 05:19:19,196::INFO::[scheduler:209] Setting schedule for midnight BPS reset 158s 2026-02-09 05:19:19,197::INFO::[scheduler:218] Setting schedule for midnight server expiration check 158s 2026-02-09 05:19:19,197::INFO::[scheduler:227] Setting schedule for server quota check 158s 2026-02-09 05:19:19,197::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.r2kxRh/autopkgtest_tmp/settings/admin/queue10.sab missing 158s 2026-02-09 05:19:19,197::INFO::[__init__:306] All processes started 158s 2026-02-09 05:19:19,197::INFO::[sabnzbdplus:338] Template location for Glitter is /usr/share/sabnzbdplus/interfaces/Glitter 158s 2026-02-09 05:19:19,197::INFO::[sabnzbdplus:338] Template location for Config is /usr/share/sabnzbdplus/interfaces/Config 158s 2026-02-09 05:19:19,197::INFO::[misc:1326] [N/A] Running external command: ['/usr/bin/unrar'] 158s 2026-02-09 05:19:19,199::INFO::[misc:1326] [N/A] Running external command: ['/usr/bin/7za'] 158s 2026-02-09 05:19:19,201::INFO::[misc:1326] [N/A] Running external command: ['/usr/bin/par2', '-V'] 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:423] SABCTools module (v8.2.6)... found! 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:424] SABCTools module is using SIMD set: AVX2 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:425] SABCTools module is linked to OpenSSL: True 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:442] Cryptography module (v43.0.0)... found! 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:445] par2 binary... found (/usr/bin/par2) 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:452] UNRAR binary... found (/usr/bin/unrar) 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:460] UNRAR binary version 7.20 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:467] 7za binary... found (/usr/bin/7za) 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:469] 7za binary version 25.01 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:475] nice binary... found (/usr/bin/nice) 158s 2026-02-09 05:19:19,202::INFO::[sabnzbdplus:479] ionice binary... found (/usr/bin/ionice) 158s 2026-02-09 05:19:19,203::INFO::[sabnzbdplus:1351] Starting web-interface on 127.0.0.1:8080 158s 2026-02-09 05:19:19,203::INFO::[_cplogging:213] [09/Feb/2026:05:19:19] ENGINE Bus STARTING 158s 2026-02-09 05:19:19,304::INFO::[_cplogging:213] [09/Feb/2026:05:19:19] ENGINE Serving on http://127.0.0.1:8080 158s 2026-02-09 05:19:19,305::INFO::[_cplogging:213] [09/Feb/2026:05:19:19] ENGINE Bus STARTED 158s 2026-02-09 05:19:19,305::INFO::[sabnzbdplus:1390] Starting sabnzbdplus-4.5.4 158s 2026-02-09 05:19:19,306::INFO::[dirscanner:112] Dirscanner starting up 158s 2026-02-09 05:19:19,306::INFO::[notifier:166] Sending notification: SABnzbd - SABnzbd 4.5.4 started (type=startup, job_cat=None) 158s 2026-02-09 05:19:19,306::INFO::[__init__:460] Commit = 977dbc805f8c29fe097f2c646959471f06464b16 158s 2026-02-09 05:19:19,306::INFO::[__init__:461] Python-version = 3.13.11 (main, Dec 6 2025, 13:15:20) [GCC 15.2.0] 158s 2026-02-09 05:19:19,306::INFO::[__init__:462] CPU architecture = x86_64 158s 2026-02-09 05:19:19,307::INFO::[misc:1326] [N/A] Running external command: ['systemd-detect-virt'] 158s 2026-02-09 05:19:19,309::INFO::[__init__:463] Platform = kvm Ubuntu Resolute Raccoon (development branch) 158s 2026-02-09 05:19:19,309::INFO::[__init__:464] JSON-module = orjson 3.11.5 158s 2026-02-09 05:19:19,309::INFO::[__init__:465] Preferred encoding = UTF-8 158s 2026-02-09 05:19:19,309::INFO::[__init__:466] SSL version = OpenSSL 3.5.3 16 Sep 2025 188s 2026-02-09 05:19:48,984::INFO::[notifier:166] Sending notification: Warning - Signal 15 caught, saving and exiting... (type=warning, job_cat=None) 188s 2026-02-09 05:19:48,984::WARNING::[__init__:202] Signal 15 caught, saving and exiting... 188s 2026-02-09 05:19:48,984::INFO::[__init__:419] [N/A] Performing SABnzbd shutdown 188s 2026-02-09 05:19:48,984::INFO::[__init__:336] SABnzbd shutting down... 188s 2026-02-09 05:19:48,984::INFO::[directunpacker:551] Aborting all DirectUnpackers 188s 2026-02-09 05:19:48,985::INFO::[notifier:166] Sending notification: SABnzbd - Shutting down (type=startup, job_cat=None) 188s 2026-02-09 05:19:48,985::INFO::[downloader:643] Shutting down 188s 2026-02-09 05:19:48,985::INFO::[nzbqueue:230] Saving queue 188s 2026-02-09 05:19:48,986::INFO::[postproc:136] Saving postproc queue 188s 2026-02-09 05:19:48,986::INFO::[__init__:405] All processes stopped 188s 2026-02-09 05:19:48,986::INFO::[_cplogging:213] [09/Feb/2026:05:19:48] ENGINE Bus STOPPING 188s 2026-02-09 05:19:49,447::INFO::[_cplogging:213] [09/Feb/2026:05:19:49] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8080)) shut down 188s 2026-02-09 05:19:49,457::INFO::[_cplogging:213] [09/Feb/2026:05:19:49] ENGINE Bus STOPPED 188s 2026-02-09 05:19:49,462::INFO::[_cplogging:213] [09/Feb/2026:05:19:49] ENGINE Bus EXITING 188s 2026-02-09 05:19:49,467::INFO::[_cplogging:213] [09/Feb/2026:05:19:49] ENGINE Bus EXITED 188s 2026-02-09 05:19:49,468::INFO::[notifier:166] Sending notification: SABnzbd - SABnzbd shutdown finished (type=startup, job_cat=None) 188s 2026-02-09 05:19:49,468::INFO::[sabnzbdplus:1486] Leaving SABnzbd 188s console run finished, status = 0 203s mdk finished, status = 0 203s removed directory 'settings/Downloads/incomplete' 203s removed directory 'settings/Downloads/complete' 203s removed directory 'settings/Downloads' 203s removed 'settings/logs/sabnzbd.log' 203s removed directory 'settings/logs' 203s removed 'settings/admin/history1.db' 203s removed 'settings/admin/queue10.sab' 203s removed 'settings/admin/watched_data2.sab' 203s removed 'settings/admin/totals10.sab' 203s removed 'settings/admin/rss_data.sab' 203s removed 'settings/admin/postproc2.sab' 203s removed directory 'settings/admin' 203s removed 'settings/z38fXfE9.ini.bak' 203s removed 'settings/z38fXfE9.ini' 203s removed directory 'settings' 203s autopkgtest [05:20:04]: test basic-runs: -----------------------] 203s autopkgtest [05:20:04]: test basic-runs: - - - - - - - - - - results - - - - - - - - - - 203s basic-runs PASS (superficial) 204s autopkgtest [05:20:05]: test upstream-tests: preparing testbed 204s Reading package lists... 204s Building dependency tree... 204s Reading state information... 204s Solving dependencies... 204s The following NEW packages will be installed: 204s chromium-browser chromium-chromedriver libblas3 libgfortran5 liblapack3 204s python3-all python3-asgiref python3-brotli python3-brotlicffi 204s python3-decorator python3-django python3-flaky python3-flasgger 204s python3-flask python3-greenlet python3-h11 python3-httpbin python3-iniconfig 204s python3-itsdangerous python3-mistune python3-numpy python3-numpy-dev 204s python3-outcome python3-pandas python3-pandas-lib python3-pluggy python3-py 204s python3-pyfakefs python3-pytest python3-pytest-asyncio 204s python3-pytest-httpbin python3-pytest-httpserver python3-pytest-mock 204s python3-pytz python3-selenium python3-sniffio python3-sortedcontainers 204s python3-sqlparse python3-trio python3-trio-websocket python3-websocket 204s python3-werkzeug python3-wsproto python3-xlrd python3-xmltodict python3.14 204s python3.14-minimal snapd squashfs-tools 204s 0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded. 204s Need to get 72.6 MB of archives. 204s After this operation, 322 MB of additional disk space will be used. 204s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 squashfs-tools amd64 1:4.7.4-1 [227 kB] 204s Get:2 http://ftpmaster.internal/ubuntu resolute/main amd64 snapd amd64 2.74+ubuntu26.04 [39.8 MB] 205s Get:3 http://ftpmaster.internal/ubuntu resolute/universe amd64 chromium-browser amd64 2:1snap1-0ubuntu3 [50.2 kB] 205s Get:4 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy-dev amd64 1:2.3.5+ds-3 [147 kB] 205s Get:5 http://ftpmaster.internal/ubuntu resolute/main amd64 libblas3 amd64 3.12.1-7ubuntu1 [260 kB] 205s Get:6 http://ftpmaster.internal/ubuntu resolute/main amd64 libgfortran5 amd64 15.2.0-12ubuntu1 [939 kB] 205s Get:7 http://ftpmaster.internal/ubuntu resolute/main amd64 liblapack3 amd64 3.12.1-7ubuntu1 [2739 kB] 205s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy amd64 1:2.3.5+ds-3 [8129 kB] 205s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 205s Get:10 http://ftpmaster.internal/ubuntu resolute/universe amd64 chromium-chromedriver amd64 2:1snap1-0ubuntu3 [2312 B] 205s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 205s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-all amd64 3.13.9-3 [890 B] 205s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-asgiref all 3.11.0-1 [25.2 kB] 205s Get:14 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-brotli amd64 1.1.0-2build6 [340 kB] 205s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-brotlicffi amd64 1.2.0.0+ds-2 [21.8 kB] 205s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-decorator all 5.2.1-2 [28.1 kB] 205s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sqlparse all 0.5.4-1 [34.3 kB] 205s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-django all 3:5.2.9-0ubuntu2 [3038 kB] 205s Get:19 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-flaky all 3.8.1-4 [16.8 kB] 205s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-itsdangerous all 2.2.0-2build1 [15.4 kB] 205s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-werkzeug all 3.1.5-1 [170 kB] 205s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-flask all 3.1.2-1ubuntu1 [84.7 kB] 205s Get:23 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-mistune all 3.1.4-1 [35.0 kB] 206s Get:24 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-flasgger all 0.9.7.2~dev2+dfsg-4 [1692 kB] 206s Get:25 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-h11 all 0.14.0-1.1 [51.6 kB] 206s Get:26 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-greenlet amd64 3.2.4-3 [185 kB] 206s Get:27 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-httpbin all 0.10.2+dfsg-2build1 [89.1 kB] 206s Get:28 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-iniconfig all 2.1.0-2 [6962 B] 206s Get:29 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-outcome all 1.2.0-2 [6208 B] 206s Get:30 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytz all 2025.2-5 [32.4 kB] 206s Get:31 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pandas-lib amd64 2.3.3+dfsg-3 [6929 kB] 206s Get:32 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pandas all 2.3.3+dfsg-3 [2948 kB] 206s Get:33 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pluggy all 1.6.0-2 [21.1 kB] 206s Get:34 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-py all 1.11.0-6 [72.9 kB] 206s Get:35 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-xlrd all 2.0.2-2 [83.4 kB] 206s Get:36 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pyfakefs all 5.10.2-1 [81.1 kB] 206s Get:37 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest all 9.0.2-2 [277 kB] 206s Get:38 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-asyncio all 1.3.0-1 [13.8 kB] 206s Get:39 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-httpbin all 2.1.0-2 [13.1 kB] 206s Get:40 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-httpserver all 1.1.3-2 [19.2 kB] 206s Get:41 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-pytest-mock all 3.15.1-1 [11.9 kB] 206s Get:42 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-sniffio all 1.3.1-1 [7262 B] 206s Get:43 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sortedcontainers all 2.4.0-2build1 [27.1 kB] 206s Get:44 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-trio all 0.32.0-1 [342 kB] 206s Get:45 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-wsproto all 1.3.2-1 [21.8 kB] 206s Get:46 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-trio-websocket all 0.12.2-1 [24.6 kB] 206s Get:47 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-websocket all 1.8.0-2build1 [38.8 kB] 206s Get:48 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-selenium all 4.24.4+dfsg-1 [104 kB] 206s Get:49 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-xmltodict all 0.13.0-1ubuntu1 [14.3 kB] 206s Preconfiguring packages ... 206s Fetched 72.6 MB in 2s (41.1 MB/s) 206s Selecting previously unselected package squashfs-tools. 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 ... 127140 files and directories currently installed.) 206s Preparing to unpack .../squashfs-tools_1%3a4.7.4-1_amd64.deb ... 206s Unpacking squashfs-tools (1:4.7.4-1) ... 206s Selecting previously unselected package snapd. 206s Preparing to unpack .../snapd_2.74+ubuntu26.04_amd64.deb ... 206s Unpacking snapd (2.74+ubuntu26.04) ... 207s Setting up squashfs-tools (1:4.7.4-1) ... 207s Setting up snapd (2.74+ubuntu26.04) ... 207s Created symlink '/etc/systemd/system/multi-user.target.wants/snapd.apparmor.service' → '/usr/lib/systemd/system/snapd.apparmor.service'. 207s Created symlink '/etc/systemd/system/multi-user.target.wants/snapd.autoimport.service' → '/usr/lib/systemd/system/snapd.autoimport.service'. 207s Created symlink '/etc/systemd/system/multi-user.target.wants/snapd.core-fixup.service' → '/usr/lib/systemd/system/snapd.core-fixup.service'. 207s Created symlink '/etc/systemd/system/multi-user.target.wants/snapd.recovery-chooser-trigger.service' → '/usr/lib/systemd/system/snapd.recovery-chooser-trigger.service'. 207s Created symlink '/etc/systemd/system/multi-user.target.wants/snapd.seeded.service' → '/usr/lib/systemd/system/snapd.seeded.service'. 207s Created symlink '/etc/systemd/system/cloud-final.service.wants/snapd.seeded.service' → '/usr/lib/systemd/system/snapd.seeded.service'. 207s Created symlink '/etc/systemd/system/multi-user.target.wants/snapd.service' → '/usr/lib/systemd/system/snapd.service'. 207s Created symlink '/etc/systemd/system/timers.target.wants/snapd.snap-repair.timer' → '/usr/lib/systemd/system/snapd.snap-repair.timer'. 207s Created symlink '/etc/systemd/system/sockets.target.wants/snapd.socket' → '/usr/lib/systemd/system/snapd.socket'. 207s Created symlink '/etc/systemd/system/final.target.wants/snapd.system-shutdown.service' → '/usr/lib/systemd/system/snapd.system-shutdown.service'. 208s snapd.failure.service is a disabled or a static unit, not starting it. 209s snapd.gpio-chardev-setup.target is a disabled or a static unit, not starting it. 209s snapd.mounts.target is a disabled or a static unit, not starting it. 209s snapd.snap-repair.service is a disabled or a static unit, not starting it. 209s Selecting previously unselected package chromium-browser. 209s (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 ... 127259 files and directories currently installed.) 209s Preparing to unpack .../00-chromium-browser_2%3a1snap1-0ubuntu3_amd64.deb ... 209s => Installing the chromium snap 209s ==> Checking connectivity with the snap store 209s ==> Installing the chromium snap 214s Ensure prerequisites for "chromium" are available / Ensure prerequisites for "chromium" are available - Ensure prerequisites for "chromium" are available \ Ensure prerequisites for "chromium" are available | Ensure prerequisites for "chromium" are available / Ensure prerequisites for "chromium" are available - Ensure prerequisites for "chromium" are available \ Ensure prerequisites for "chromium" are available | Ensure prerequisites for "chromium" are available / Ensure prerequisites for "chromium" are available - Ensure prerequisites for "chromium" are available \ Ensure prerequisites for "chromium" are available | Ensure prerequisites for "chromium" are available / Download snap "snapd" (25935) from channel "stable" - Download snap "snapd" (25935) from channel "stable" \ Download snap "snapd" (25935) from channel "stable" | Download snap "snapd" (25935) from channel "stable" / Download snap "snapd" (25935) from channel "stable" - Download snap "snapd" (25935) from channel "stable" \ Download snap "snapd" (25935) from channel "stable" | Download snap "snapd" (25935) from channel "stable" / Download snap "snapd" (25935) from channel "stable" -[?25l Download snap "snapd" (25935) from channel "stable" 2% 9.9MB/s 4.98s Download snap "snapd" (25935) from channel "stable" 16% 38.4MB/s 1.11s Download snap "snapd" (25935) from channel "stable" 36% 58.3MB/s 551ms Download snap "snapd" (25935) from channel "stable" 56% 68.1MB/s 323ms Download snap "snapd" (25935) from channel "stable"  76% 73.2MB/s 168ms Download snap "snapd" (25935) from channel "stable" 96% 77.1MB/s 27ms Fetch and check assertions for snap "snapd" (25935) \ Fetch and check assertions for snap "snapd" (25935) | Mount snap "snapd" (25935) / Mount snap "snapd" (25935) - Setup snap "snapd" (25935) security profiles \ Setup snap "snapd" (25935) security profiles | Setup snap "snapd" (25935) security profiles / Automatically connect eligible plugs and slots of snap "snapd" - 2026-02-09T05:20:15Z INFO Waiting for automatic snapd restart... 273s Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Automatically connect eligible plugs and slots of snap "snapd" / Automatically connect eligible plugs and slots of snap "snapd" - Automatically connect eligible plugs and slots of snap "snapd" \ Automatically connect eligible plugs and slots of snap "snapd" | Download snap "core24" (1349) from channel "stable" / Download snap "core24" (1349) from channel "stable" - Download snap "core24" (1349) from channel "stable" \ Download snap "core24" (1349) from channel "stable" | Download snap "core24" (1349) from channel "stable" / Download snap "core24" (1349) from channel "stable" - Download snap "core24" (1349) from channel "stable" \ Download snap "core24" (1349) from channel "stable" | Download snap "core24" (1349) from channel "stable" /[?25l Download snap "core24" (1349) from channel "stable" 0% 0B/s ages! Download snap "core24" (1349) from channel "stable" 0% 0B/s ages! Download snap "core24" (1349) from channel "stable" 0% 468kB/s 2m30s Download snap "core24" (1349) from channel "stable" 0% 351kB/s 3m20s Download snap "core24" (1349) from channel "stable" 0% 564kB/s 2m04s Download snap "core24" (1349) from channel "stable" 0% 470kB/s 2m29s Download snap "core24" (1349) from channel "stable" 0% 403kB/s 2m53s Download snap "core24" (1349) from channel "stable" 1% 529kB/s 2m12s Download snap "core24" (1349) from channel "stable" 1% 471kB/s 2m28s Download snap "core24" (1349) from channel "stable" 1% 566kB/s 2m03s Download snap "core24" (1349) from channel "stable" 1% 514kB/s 2m15s Download snap "core24" (1349) from channel "stable" 1% 471kB/s 2m28s Download snap "core24" (1349) from channel "stable" 1% 542kB/s 2m08s Download snap "core24" (1349) from channel "stable" 1% 604kB/s 1m55s Download snap "core24" (1349) from channel "stable" 1% 564kB/s 2m03s Download snap "core24" (1349) from channel "stable" 1% 616kB/s 1m52s Download snap "core24" (1349) from channel "stable" 2% 663kB/s 1m44s Download snap "core24" (1349) from channel "stable" 2% 704kB/s 1m38s Download snap "core24" (1349) from channel "stable" 2% 815kB/s 1m24s Download snap "core24" (1349) from channel "stable" 3% 845kB/s 1m21s Download snap "core24" (1349) from channel "stable" 3% 939kB/s 1m12s Download snap "core24" (1349) from channel "stable" 3% 1.02MB/s 1m06s Download snap "core24" (1349) from channel "stable" 4% 1.16MB/s 57.9s Download snap "core24" (1349) from channel "stable" 4% 1.23MB/s 54.4s Download snap "core24" (1349) from channel "stable" 5% 1.35MB/s 49.2s Download snap "core24" (1349) from channel "stable" 6% 1.52MB/s 43.5s Download snap "core24" (1349) from channel "stable" 7% 1.67MB/s 39.1s Download snap "core24" (1349) from channel "stable" 8% 1.86MB/s 34.7s Download snap "core24" (1349) from channel "stable" 9% 2.04MB/s 31.3s Download snap "core24" (1349) from channel "stable" 10% 2.30MB/s 27.3s Download snap "core24" (1349) from channel "stable" 12% 2.55MB/s 24.3s Download snap "core24" (1349) from channel "stable" 14% 2.86MB/s 21.1s Download snap "core24" (1349) from channel "stable" 16% 3.21MB/s 18.4s Download snap "core24" (1349) from channel "stable" 18% 3.57MB/s 16.1s Download snap "core24" (1349) from channel "stable" 21% 3.99MB/s 13.9s Download snap "core24" (1349) from channel "stable" 24% 4.47MB/s 11.9s Download snap "core24" (1349) from channel "stable" 28% 5.04MB/s 10.1s Download snap "core24" (1349) from channel "stable" 32% 5.65MB/s 8.46s Download snap "core24" (1349) from channel "stable" 36% 6.30MB/s 7.07s Download snap "core24" (1349) from channel "stable" 41% 6.92MB/s 5.97s Download snap "core24" (1349) from channel "stable" 46% 7.51MB/s 5.07s Download snap "core24" (1349) from channel "stable" 50% 8.07MB/s 4.32s Download snap "core24" (1349) from channel "stable" 55% 8.56MB/s 3.71s Download snap "core24" (1349) from channel "stable" 60% 9.10MB/s 3.12s Download snap "core24" (1349) from channel "stable" 64% 9.6MB/s 2.62s Download snap "core24" (1349) from channel "stable"  69% 10.1MB/s 2.18s Download snap "core24" (1349) from channel "stable"  73% 10.5MB/s 1.78s Download snap "core24" (1349) from channel "stable" 78% 10.9MB/s 1.41s Download snap "core24" (1349) from channel "stable" 83% 11.3MB/s 1.08s Download snap "core24" (1349) from channel "stable" 87% 11.7MB/s 767ms Download snap "core24" (1349) from channel "stable" 92% 12.1MB/s 476ms Download snap "core24" (1349) from channel "stable" 96% 12.4MB/s 216ms Download snap "core24" (1349) from channel "stable" 100% 12.7MB/s 0.0ns Fetch and check assertions for snap "core24" (1349) - Fetch and check assertions for snap "core24" (1349) \ Fetch and check assertions for snap "core24" (1349) | Mount snap "core24" (1349) / Mount snap "core24" (1349) - Mount snap "core24" (1349) \ Ensure prerequisites for "gtk-common-themes" are available | Ensure prerequisites for "gtk-common-themes" are available / Download snap "bare" (5) from channel "stable" - Download snap "bare" (5) from channel "stable" \ Download snap "bare" (5) from channel "stable" | Fetch and check assertions for snap "bare" (5) / Mount snap "bare" (5) - Mount snap "bare" (5) \ Copy snap "bare" data |[?25l Download snap "mesa-2404" (1165) from channel "stable" / Download snap "mesa-2404" (1165) from channel "stable" - Download snap "core22" (2292) from channel "stable" \ Download snap "core22" (2292) from channel "stable" | Download snap "core22" (2292) from channel "stable" /[?25l Download snap "core22" (2292) from channel "stable" 0% 1.52MB/s 50.8s Download snap "core22" (2292) from channel "stable" 2% 6.97MB/s 10.9s Download snap "core22" (2292) from channel "stable" 12% 29.4MB/s 2.32s Download snap "core22" (2292) from channel "stable" 25% 45.3MB/s 1.29s Download snap "core22" (2292) from channel "stable" 37% 55.3MB/s 877ms Download snap "core22" (2292) from channel "stable" 50% 61.5MB/s 629ms Download snap "core22" (2292) from channel "stable" 63% 66.7MB/s 426ms Download snap "core22" (2292) from channel "stable"  76% 70.5MB/s 260ms Download snap "core22" (2292) from channel "stable" 83% 68.4MB/s 189ms Download snap "core22" (2292) from channel "stable" 86% 63.5MB/s 173ms Download snap "core22" (2292) from channel "stable" 92% 62.1MB/s 95ms Download snap "core22" (2292) from channel "stable" 97% 59.6MB/s 42ms Download snap "core22" (2292) from channel "stable" 98% 55.4MB/s 33ms Download snap "core22" (2292) from channel "stable" 99% 52.1MB/s 19ms Download snap "core22" (2292) from channel "stable" 100% 48.3MB/s 0.0ns Fetch and check assertions for snap "core22" (2292) - Fetch and check assertions for snap "core22" (2292) \ Mount snap "core22" (2292) | Mount snap "core22" (2292) / Mount snap "core22" (2292) - Mount snap "core22" (2292) \[?25l Start snap "core22" (2292) services | Download snap "mesa-2404" (1165) from channel "stable" 0% 1.77MB/s 3m53s Download snap "mesa-2404" (1165) from channel "stable" 0% 2.90MB/s 2m22s Download snap "mesa-2404" (1165) from channel "stable" 0% 2.44MB/s 2m49s Download snap "mesa-2404" (1165) from channel "stable" 1% 3.16MB/s 2m10s Download snap "mesa-2404" (1165) from channel "stable" 1% 2.79MB/s 2m28s Download snap "mesa-2404" (1165) from channel "stable" 1% 2.48MB/s 2m46s Download snap "mesa-2404" (1165) from channel "stable" 1% 2.99MB/s 2m18s Download snap "mesa-2404" (1165) from channel "stable" 1% 2.71MB/s 2m31s Download snap "mesa-2404" (1165) from channel "stable" 1% 3.12MB/s 2m11s Download snap "mesa-2404" (1165) from channel "stable" 1% 3.42MB/s 1m60s Download snap "mesa-2404" (1165) from channel "stable" 1% 3.71MB/s 1m50s Download snap "mesa-2404" (1165) from channel "stable" 2% 3.97MB/s 1m43s Download snap "mesa-2404" (1165) from channel "stable" 2% 4.20MB/s 1m37s Download snap "mesa-2404" (1165) from channel "stable" 2% 4.40MB/s 1m32s Download snap "mesa-2404" (1165) from channel "stable" 2% 5.00MB/s 1m21s Download snap "mesa-2404" (1165) from channel "stable" 3% 5.54MB/s 1m13s Download snap "mesa-2404" (1165) from channel "stable" 3% 6.03MB/s 1m06s Download snap "mesa-2404" (1165) from channel "stable" 4% 6.47MB/s 1m02s Download snap "mesa-2404" (1165) from channel "stable" 4% 7.23MB/s 54.9s Download snap "mesa-2404" (1165) from channel "stable" 5% 7.49MB/s 52.6s Download snap "mesa-2404" (1165) from channel "stable" 6% 9.02MB/s 43.2s Download snap "mesa-2404" (1165) from channel "stable" 7% 9.8MB/s 39.4s Download snap "mesa-2404" (1165) from channel "stable" 8% 10.5MB/s 36.3s Download snap "mesa-2404" (1165) from channel "stable" 8% 11.2MB/s 33.8s Download snap "mesa-2404" (1165) from channel "stable" 9% 11.9MB/s 31.7s Download snap "mesa-2404" (1165) from channel "stable" 10% 12.7MB/s 29.2s Download snap "mesa-2404" (1165) from channel "stable" 11% 13.3MB/s 27.7s Download snap "mesa-2404" (1165) from channel "stable" 12% 13.8MB/s 26.4s Download snap "mesa-2404" (1165) from channel "stable" 13% 14.3MB/s 25.3s Download snap "mesa-2404" (1165) from channel "stable" 13% 12.0MB/s 30.2s Download snap "mesa-2404" (1165) from channel "stable" 14% 12.8MB/s 27.9s Download snap "mesa-2404" (1165) from channel "stable" 15% 13.2MB/s 26.7s Download snap "mesa-2404" (1165) from channel "stable" 16% 13.6MB/s 25.7s Download snap "mesa-2404" (1165) from channel "stable" 16% 14.0MB/s 24.8s Download snap "mesa-2404" (1165) from channel "stable" 17% 14.3MB/s 23.9s Download snap "mesa-2404" (1165) from channel "stable" 18% 14.8MB/s 22.9s Download snap "mesa-2404" (1165) from channel "stable" 19% 15.1MB/s 22.1s Download snap "mesa-2404" (1165) from channel "stable" 20% 15.5MB/s 21.5s Download snap "mesa-2404" (1165) from channel "stable" 21% 15.8MB/s 20.8s Download snap "mesa-2404" (1165) from channel "stable" 21% 15.9MB/s 20.5s Download snap "mesa-2404" (1165) from channel "stable" 22% 16.2MB/s 19.9s Download snap "mesa-2404" (1165) from channel "stable" 23% 16.6MB/s 19.2s Download snap "mesa-2404" (1165) from channel "stable" 24% 16.9MB/s 18.7s Download snap "mesa-2404" (1165) from channel "stable" 25% 17.1MB/s 18.2s Download snap "mesa-2404" (1165) from channel "stable" 26% 17.3MB/s 17.8s Download snap "mesa-2404" (1165) from channel "stable" 26% 13.2MB/s 23.1s Download snap "mesa-2404" (1165) from channel "stable" 27% 13.1MB/s 23.3s Download snap "mesa-2404" (1165) from channel "stable" 28% 13.6MB/s 21.9s Download snap "mesa-2404" (1165) from channel "stable" 29% 13.8MB/s 21.4s Download snap "mesa-2404" (1165) from channel "stable" 30% 14.0MB/s 20.8s Download snap "mesa-2404" (1165) from channel "stable" 30% 14.2MB/s 20.3s Download snap "mesa-2404" (1165) from channel "stable" 31% 14.4MB/s 19.8s Download snap "mesa-2404" (1165) from channel "stable" 32% 14.1MB/s 20.1s Connect cups:network-manager-observe to snapd:network-manager-observe / Download snap "mesa-2404" (1165) from channel "stable" 34% 14.7MB/s 18.6s Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Setup snap "cups" (1142) security profiles for auto-connections \ Setup snap "cups" (1142) security profiles for auto-connections | Setup snap "cups" (1142) security profiles for auto-connections / Setup snap "cups" (1142) security profiles for auto-connections - Download snap "mesa-2404" (1165) from channel "stable" 59% 18.5MB/s 9.19s Download snap "mesa-2404" (1165) from channel "stable" 60% 18.6MB/s 8.96s Download snap "mesa-2404" (1165) from channel "stable" 60% 18.7MB/s 8.73s Download snap "mesa-2404" (1165) from channel "stable" 61% 18.8MB/s 8.51s Download snap "mesa-2404" (1165) from channel "stable" 62% 18.9MB/s 8.29s Download snap "mesa-2404" (1165) from channel "stable" 63% 19.0MB/s 8.07s Download snap "mesa-2404" (1165) from channel "stable" 64% 19.1MB/s 7.86s Download snap "mesa-2404" (1165) from channel "stable" 65% 19.2MB/s 7.65s Download snap "mesa-2404" (1165) from channel "stable" 65% 19.3MB/s 7.44s Download snap "mesa-2404" (1165) from channel "stable" 66% 19.4MB/s 7.23s Download snap "mesa-2404" (1165) from channel "stable" 67% 19.5MB/s 7.03s Download snap "mesa-2404" (1165) from channel "stable" 68% 19.6MB/s 6.83s Download snap "mesa-2404" (1165) from channel "stable" 69% 19.7MB/s 6.63s Download snap "mesa-2404" (1165) from channel "stable"  69% 19.8MB/s 6.43s Download snap "mesa-2404" (1165) from channel "stable"  70% 19.8MB/s 6.24s Download snap "mesa-2404" (1165) from channel "stable"  71% 19.9MB/s 6.04s Download snap "mesa-2404" (1165) from channel "stable"  72% 20.0MB/s 5.85s Download snap "mesa-2404" (1165) from channel "stable"  73% 20.1MB/s 5.66s Download snap "mesa-2404" (1165) from channel "stable"  73% 20.2MB/s 5.47s Download snap "mesa-2404" (1165) from channel "stable"  74% 20.2MB/s 5.29s Download snap "mesa-2404" (1165) from channel "stable"  75% 20.3MB/s 5.16s Download snap "mesa-2404" (1165) from channel "stable"  76% 20.3MB/s 4.97s Download snap "mesa-2404" (1165) from channel "stable"  76% 20.4MB/s 4.79s Download snap "mesa-2404" (1165) from channel "stable"  77% 20.5MB/s 4.61s Download snap "mesa-2404" (1165) from channel "stable" 78% 20.6MB/s 4.43s Download snap "mesa-2404" (1165) from channel "stable" 79% 20.6MB/s 4.26s Download snap "mesa-2404" (1165) from channel "stable" 80% 20.7MB/s 4.08s Download snap "mesa-2404" (1165) from channel "stable" 80% 20.8MB/s 3.91s Download snap "mesa-2404" (1165) from channel "stable" 81% 20.9MB/s 3.74s Download snap "mesa-2404" (1165) from channel "stable" 82% 20.9MB/s 3.56s Download snap "mesa-2404" (1165) from channel "stable" 83% 21.0MB/s 3.39s Download snap "mesa-2404" (1165) from channel "stable" 84% 21.1MB/s 3.22s Download snap "mesa-2404" (1165) from channel "stable" 84% 21.1MB/s 3.06s Download snap "mesa-2404" (1165) from channel "stable" 85% 21.1MB/s 2.94s Download snap "mesa-2404" (1165) from channel "stable" 86% 21.2MB/s 2.77s Download snap "mesa-2404" (1165) from channel "stable" 87% 21.3MB/s 2.61s Download snap "mesa-2404" (1165) from channel "stable" 87% 21.3MB/s 2.44s Download snap "mesa-2404" (1165) from channel "stable" 88% 21.4MB/s 2.28s Download snap "mesa-2404" (1165) from channel "stable" 89% 21.5MB/s 2.12s Download snap "mesa-2404" (1165) from channel "stable" 90% 21.5MB/s 1.96s Download snap "mesa-2404" (1165) from channel "stable" 91% 21.6MB/s 1.80s Download snap "mesa-2404" (1165) from channel "stable" 91% 21.6MB/s 1.68s Download snap "mesa-2404" (1165) from channel "stable" 92% 21.7MB/s 1.52s Download snap "mesa-2404" (1165) from channel "stable" 93% 21.7MB/s 1.36s Download snap "mesa-2404" (1165) from channel "stable" 94% 21.8MB/s 1.21s Download snap "mesa-2404" (1165) from channel "stable" 94% 21.8MB/s 1.05s Download snap "mesa-2404" (1165) from channel "stable" 95% 21.9MB/s 897ms Download snap "mesa-2404" (1165) from channel "stable" 96% 22.0MB/s 743ms Download snap "mesa-2404" (1165) from channel "stable" 97% 22.0MB/s 590ms Download snap "mesa-2404" (1165) from channel "stable" 98% 22.1MB/s 438ms Download snap "mesa-2404" (1165) from channel "stable" 98% 22.1MB/s 286ms Download snap "mesa-2404" (1165) from channel "stable" 99% 22.1MB/s 173ms Download snap "mesa-2404" (1165) from channel "stable" 100% 22.2MB/s 0.0ns Download snap "mesa-2404" (1165) from channel "stable" 100% 22.1MB/s 0.0ns Download snap "mesa-2404" (1165) from channel "stable" 100% 22.0MB/s 0.0ns Fetch and check assertions for snap "mesa-2404" (1165) \ Fetch and check assertions for snap "mesa-2404" (1165) | Fetch and check assertions for snap "mesa-2404" (1165) / Mount snap "mesa-2404" (1165) - Mount snap "mesa-2404" (1165) \ Mount snap "mesa-2404" (1165) | Setup snap "mesa-2404" (1165) security profiles / Setup snap "mesa-2404" (1165) security profiles - Setup snap "mesa-2404" (1165) security profiles \ Setup snap "mesa-2404" (1165) security profiles | Make snap "mesa-2404" (1165) available to the system / Run install hook of "mesa-2404" snap if present - Run install hook of "mesa-2404" snap if present \ Run install hook of "mesa-2404" snap if present | Run install hook of "mesa-2404" snap if present / Run install hook of "mesa-2404" snap if present - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Automatically connect eligible plugs and slots of snap "chromium" | Automatically connect eligible plugs and slots of snap "chromium" / Automatically connect eligible plugs and slots of snap "chromium" - Automatically connect eligible plugs and slots of snap "chromium" \ Connect chromium:gsettings to snapd:gsettings | Connect chromium:etc-chromium-browser-policies to snapd:system-files / Setup snap "chromium" (3354) security profiles for auto-connections - Setup snap "chromium" (3354) security profiles for auto-connections \ Setup snap "chromium" (3354) security profiles for auto-connections | Setup snap "chromium" (3354) security profiles for auto-connections / Setup snap "chromium" (3354) security profiles for auto-connections - Setup snap "chromium" (3354) security profiles for auto-connections \ Setup snap "chromium" (3354) security profiles for auto-connections | Setup snap "chromium" (3354) security profiles for auto-connections / Setup snap "chromium" (3354) security profiles for auto-connections - Setup snap "chromium" (3354) security profiles for auto-connections \ Setup snap "chromium" (3354) security profiles for auto-connections | Setup snap "chromium" (3354) security profiles for auto-connections / Setup snap "chromium" (3354) security profiles for auto-connections - Setup snap "chromium" (3354) security profiles for auto-connections \ Setup snap "chromium" (3354) security profiles for auto-connections | Setup snap "chromium" (3354) security profiles for auto-connections / Setup snap "chromium" (3354) security profiles for auto-connections - Setup snap "chromium" (3354) security profiles for auto-connections \ Setup snap "chromium" (3354) security profiles for auto-connections | Setup snap "chromium" (3354) security profiles for auto-connections / Setup snap "chromium" (3354) security profiles for auto-connections - Run configure hook of "chromium" snap if present \ Run configure hook of "chromium" snap if present | Run configure hook of "chromium" snap if present / Run service command "stop" for services ["daemon"] of snap "chromium" - Run service command "stop" for services ["daemon"] of snap "chromium" \ [?25hchromium 144.0.7559.109 from Canonical✓ installed 273s => Snap installation complete 273s Unpacking chromium-browser (2:1snap1-0ubuntu3) ... 273s Selecting previously unselected package python3-numpy-dev:amd64. 273s Preparing to unpack .../01-python3-numpy-dev_1%3a2.3.5+ds-3_amd64.deb ... 273s Unpacking python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 273s Selecting previously unselected package libblas3:amd64. 273s Preparing to unpack .../02-libblas3_3.12.1-7ubuntu1_amd64.deb ... 273s Unpacking libblas3:amd64 (3.12.1-7ubuntu1) ... 273s Selecting previously unselected package libgfortran5:amd64. 273s Preparing to unpack .../03-libgfortran5_15.2.0-12ubuntu1_amd64.deb ... 273s Unpacking libgfortran5:amd64 (15.2.0-12ubuntu1) ... 273s Selecting previously unselected package liblapack3:amd64. 273s Preparing to unpack .../04-liblapack3_3.12.1-7ubuntu1_amd64.deb ... 273s Unpacking liblapack3:amd64 (3.12.1-7ubuntu1) ... 273s Selecting previously unselected package python3-numpy. 273s Preparing to unpack .../05-python3-numpy_1%3a2.3.5+ds-3_amd64.deb ... 273s Unpacking python3-numpy (1:2.3.5+ds-3) ... 273s Selecting previously unselected package python3.14-minimal. 273s Preparing to unpack .../06-python3.14-minimal_3.14.2-1_amd64.deb ... 273s Unpacking python3.14-minimal (3.14.2-1) ... 273s Selecting previously unselected package chromium-chromedriver. 273s Preparing to unpack .../07-chromium-chromedriver_2%3a1snap1-0ubuntu3_amd64.deb ... 273s Unpacking chromium-chromedriver (2:1snap1-0ubuntu3) ... 273s Selecting previously unselected package python3.14. 273s Preparing to unpack .../08-python3.14_3.14.2-1_amd64.deb ... 273s Unpacking python3.14 (3.14.2-1) ... 273s Selecting previously unselected package python3-all. 273s Preparing to unpack .../09-python3-all_3.13.9-3_amd64.deb ... 273s Unpacking python3-all (3.13.9-3) ... 273s Selecting previously unselected package python3-asgiref. 273s Preparing to unpack .../10-python3-asgiref_3.11.0-1_all.deb ... 273s Unpacking python3-asgiref (3.11.0-1) ... 273s Selecting previously unselected package python3-brotli. 273s Preparing to unpack .../11-python3-brotli_1.1.0-2build6_amd64.deb ... 273s Unpacking python3-brotli (1.1.0-2build6) ... 273s Selecting previously unselected package python3-brotlicffi. 273s Preparing to unpack .../12-python3-brotlicffi_1.2.0.0+ds-2_amd64.deb ... 273s Unpacking python3-brotlicffi (1.2.0.0+ds-2) ... 273s Selecting previously unselected package python3-decorator. 273s Preparing to unpack .../13-python3-decorator_5.2.1-2_all.deb ... 273s Unpacking python3-decorator (5.2.1-2) ... 273s Selecting previously unselected package python3-sqlparse. 273s Preparing to unpack .../14-python3-sqlparse_0.5.4-1_all.deb ... 273s Unpacking python3-sqlparse (0.5.4-1) ... 273s Selecting previously unselected package python3-django. 273s Preparing to unpack .../15-python3-django_3%3a5.2.9-0ubuntu2_all.deb ... 273s Unpacking python3-django (3:5.2.9-0ubuntu2) ... 274s Selecting previously unselected package python3-flaky. 274s Preparing to unpack .../16-python3-flaky_3.8.1-4_all.deb ... 274s Unpacking python3-flaky (3.8.1-4) ... 274s Selecting previously unselected package python3-itsdangerous. 274s Preparing to unpack .../17-python3-itsdangerous_2.2.0-2build1_all.deb ... 274s Unpacking python3-itsdangerous (2.2.0-2build1) ... 274s Selecting previously unselected package python3-werkzeug. 274s Preparing to unpack .../18-python3-werkzeug_3.1.5-1_all.deb ... 274s Unpacking python3-werkzeug (3.1.5-1) ... 274s Selecting previously unselected package python3-flask. 274s Preparing to unpack .../19-python3-flask_3.1.2-1ubuntu1_all.deb ... 274s Unpacking python3-flask (3.1.2-1ubuntu1) ... 274s Selecting previously unselected package python3-mistune. 274s Preparing to unpack .../20-python3-mistune_3.1.4-1_all.deb ... 274s Unpacking python3-mistune (3.1.4-1) ... 274s Selecting previously unselected package python3-flasgger. 274s Preparing to unpack .../21-python3-flasgger_0.9.7.2~dev2+dfsg-4_all.deb ... 274s Unpacking python3-flasgger (0.9.7.2~dev2+dfsg-4) ... 274s Selecting previously unselected package python3-h11. 274s Preparing to unpack .../22-python3-h11_0.14.0-1.1_all.deb ... 274s Unpacking python3-h11 (0.14.0-1.1) ... 274s Selecting previously unselected package python3-greenlet. 274s Preparing to unpack .../23-python3-greenlet_3.2.4-3_amd64.deb ... 274s Unpacking python3-greenlet (3.2.4-3) ... 274s Selecting previously unselected package python3-httpbin. 274s Preparing to unpack .../24-python3-httpbin_0.10.2+dfsg-2build1_all.deb ... 274s Unpacking python3-httpbin (0.10.2+dfsg-2build1) ... 274s Selecting previously unselected package python3-iniconfig. 274s Preparing to unpack .../25-python3-iniconfig_2.1.0-2_all.deb ... 274s Unpacking python3-iniconfig (2.1.0-2) ... 274s Selecting previously unselected package python3-outcome. 274s Preparing to unpack .../26-python3-outcome_1.2.0-2_all.deb ... 274s Unpacking python3-outcome (1.2.0-2) ... 274s Selecting previously unselected package python3-pytz. 274s Preparing to unpack .../27-python3-pytz_2025.2-5_all.deb ... 274s Unpacking python3-pytz (2025.2-5) ... 274s Selecting previously unselected package python3-pandas-lib:amd64. 274s Preparing to unpack .../28-python3-pandas-lib_2.3.3+dfsg-3_amd64.deb ... 274s Unpacking python3-pandas-lib:amd64 (2.3.3+dfsg-3) ... 274s Selecting previously unselected package python3-pandas. 274s Preparing to unpack .../29-python3-pandas_2.3.3+dfsg-3_all.deb ... 274s Unpacking python3-pandas (2.3.3+dfsg-3) ... 274s Selecting previously unselected package python3-pluggy. 274s Preparing to unpack .../30-python3-pluggy_1.6.0-2_all.deb ... 274s Unpacking python3-pluggy (1.6.0-2) ... 274s Selecting previously unselected package python3-py. 274s Preparing to unpack .../31-python3-py_1.11.0-6_all.deb ... 274s Unpacking python3-py (1.11.0-6) ... 274s Selecting previously unselected package python3-xlrd. 274s Preparing to unpack .../32-python3-xlrd_2.0.2-2_all.deb ... 274s Unpacking python3-xlrd (2.0.2-2) ... 274s Selecting previously unselected package python3-pyfakefs. 274s Preparing to unpack .../33-python3-pyfakefs_5.10.2-1_all.deb ... 274s Unpacking python3-pyfakefs (5.10.2-1) ... 274s Selecting previously unselected package python3-pytest. 274s Preparing to unpack .../34-python3-pytest_9.0.2-2_all.deb ... 274s Unpacking python3-pytest (9.0.2-2) ... 274s Selecting previously unselected package python3-pytest-asyncio. 274s Preparing to unpack .../35-python3-pytest-asyncio_1.3.0-1_all.deb ... 274s Unpacking python3-pytest-asyncio (1.3.0-1) ... 274s Selecting previously unselected package python3-pytest-httpbin. 274s Preparing to unpack .../36-python3-pytest-httpbin_2.1.0-2_all.deb ... 274s Unpacking python3-pytest-httpbin (2.1.0-2) ... 274s Selecting previously unselected package python3-pytest-httpserver. 274s Preparing to unpack .../37-python3-pytest-httpserver_1.1.3-2_all.deb ... 274s Unpacking python3-pytest-httpserver (1.1.3-2) ... 274s Selecting previously unselected package python3-pytest-mock. 274s Preparing to unpack .../38-python3-pytest-mock_3.15.1-1_all.deb ... 274s Unpacking python3-pytest-mock (3.15.1-1) ... 274s Selecting previously unselected package python3-sniffio. 274s Preparing to unpack .../39-python3-sniffio_1.3.1-1_all.deb ... 274s Unpacking python3-sniffio (1.3.1-1) ... 274s Selecting previously unselected package python3-sortedcontainers. 274s Preparing to unpack .../40-python3-sortedcontainers_2.4.0-2build1_all.deb ... 274s Unpacking python3-sortedcontainers (2.4.0-2build1) ... 274s Selecting previously unselected package python3-trio. 274s Preparing to unpack .../41-python3-trio_0.32.0-1_all.deb ... 274s Unpacking python3-trio (0.32.0-1) ... 274s Selecting previously unselected package python3-wsproto. 274s Preparing to unpack .../42-python3-wsproto_1.3.2-1_all.deb ... 274s Unpacking python3-wsproto (1.3.2-1) ... 274s Selecting previously unselected package python3-trio-websocket. 274s Preparing to unpack .../43-python3-trio-websocket_0.12.2-1_all.deb ... 274s Unpacking python3-trio-websocket (0.12.2-1) ... 274s Selecting previously unselected package python3-websocket. 274s Preparing to unpack .../44-python3-websocket_1.8.0-2build1_all.deb ... 274s Unpacking python3-websocket (1.8.0-2build1) ... 274s Selecting previously unselected package python3-selenium. 274s Preparing to unpack .../45-python3-selenium_4.24.4+dfsg-1_all.deb ... 274s Unpacking python3-selenium (4.24.4+dfsg-1) ... 274s Selecting previously unselected package python3-xmltodict. 274s Preparing to unpack .../46-python3-xmltodict_0.13.0-1ubuntu1_all.deb ... 274s Unpacking python3-xmltodict (0.13.0-1ubuntu1) ... 274s Setting up python3-iniconfig (2.1.0-2) ... 275s Setting up python3-sniffio (1.3.1-1) ... 275s Setting up python3-outcome (1.2.0-2) ... 275s Setting up python3-brotlicffi (1.2.0.0+ds-2) ... 275s Setting up python3-py (1.11.0-6) ... 275s Setting up python3-itsdangerous (2.2.0-2build1) ... 275s Setting up python3-pytz (2025.2-5) ... 275s Setting up python3-sortedcontainers (2.4.0-2build1) ... 275s Setting up python3-decorator (5.2.1-2) ... 276s Setting up python3-xmltodict (0.13.0-1ubuntu1) ... 276s Setting up libblas3:amd64 (3.12.1-7ubuntu1) ... 276s update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode 276s Setting up python3-sqlparse (0.5.4-1) ... 276s Setting up python3-flaky (3.8.1-4) ... 276s Setting up python3-trio (0.32.0-1) ... 276s Setting up python3-werkzeug (3.1.5-1) ... 277s Setting up python3-brotli (1.1.0-2build6) ... 277s Setting up python3-greenlet (3.2.4-3) ... 277s Setting up python3-numpy-dev:amd64 (1:2.3.5+ds-3) ... 277s Setting up python3-h11 (0.14.0-1.1) ... 277s Setting up libgfortran5:amd64 (15.2.0-12ubuntu1) ... 277s Setting up python3-pluggy (1.6.0-2) ... 277s Setting up chromium-browser (2:1snap1-0ubuntu3) ... 277s update-alternatives: using /usr/bin/chromium-browser to provide /usr/bin/x-www-browser (x-www-browser) in auto mode 277s update-alternatives: using /usr/bin/chromium-browser to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto mode 277s Setting up python3-pytest-httpserver (1.1.3-2) ... 277s Setting up python3-xlrd (2.0.2-2) ... 278s Setting up python3-mistune (3.1.4-1) ... 278s Setting up python3-websocket (1.8.0-2build1) ... 278s Setting up python3.14-minimal (3.14.2-1) ... 278s Setting up python3-asgiref (3.11.0-1) ... 279s Setting up liblapack3:amd64 (3.12.1-7ubuntu1) ... 279s update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode 279s Setting up python3-django (3:5.2.9-0ubuntu2) ... 280s Setting up python3-wsproto (1.3.2-1) ... 280s Setting up python3-pytest (9.0.2-2) ... 281s Setting up python3-flask (3.1.2-1ubuntu1) ... 281s Setting up python3-trio-websocket (0.12.2-1) ... 281s Setting up chromium-chromedriver (2:1snap1-0ubuntu3) ... 281s Setting up python3-numpy (1:2.3.5+ds-3) ... 283s Setting up python3-pytest-asyncio (1.3.0-1) ... 283s Setting up python3-pytest-mock (3.15.1-1) ... 283s Setting up python3.14 (3.14.2-1) ... 284s Setting up python3-flasgger (0.9.7.2~dev2+dfsg-4) ... 284s Setting up python3-selenium (4.24.4+dfsg-1) ... 284s Setting up python3-pandas-lib:amd64 (2.3.3+dfsg-3) ... 284s Setting up python3-all (3.13.9-3) ... 284s Setting up python3-pandas (2.3.3+dfsg-3) ... 290s Setting up python3-httpbin (0.10.2+dfsg-2build1) ... 290s Setting up python3-pytest-httpbin (2.1.0-2) ... 290s Setting up python3-pyfakefs (5.10.2-1) ... 290s Processing triggers for systemd (259-1ubuntu3) ... 290s Processing triggers for man-db (2.13.1-1build1) ... 291s Processing triggers for dbus (1.16.2-2ubuntu3) ... 291s Processing triggers for libc-bin (2.42-2ubuntu4) ... 291s autopkgtest [05:21:32]: test upstream-tests: [----------------------- 292s Running testsuite with python3.14: 294s ============================= test session starts ============================== 294s platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 294s rootdir: /tmp/autopkgtest.r2kxRh/autopkgtest_tmp 294s plugins: pytest_httpserver-1.1.3, pyfakefs-5.10.2, mock-3.15.1, asyncio-1.3.0, typeguard-4.4.4, httpbin-2.1.0, flaky-3.8.1 294s asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function 294s collected 13019 items / 10 deselected / 2 skipped / 13009 selected 294s 297s tests/test_api_and_interface.py ................. [ 0%] 297s tests/test_cfg.py ...................................................... [ 0%] 297s ...................................... [ 0%] 298s tests/test_config.py .x... [ 0%] 298s tests/test_decoder.py .................................................. [ 1%] 298s ........................................................................ [ 1%] 298s ....................... [ 1%] 299s tests/test_decorator.py ............ [ 2%] 300s tests/test_deobfuscate_filenames.py ............. [ 2%] 300s tests/test_dirscanner.py .................... [ 2%] 300s tests/test_encoding.py ... [ 2%] 300s tests/test_file_extension.py ... [ 2%] 317s tests/test_filesystem.py .........................s..................... [ 2%] 318s ..................sssss....................... [ 3%] 323s tests/test_functional_adding_nzbs.py ................................... [ 3%] 323s ........................................................................ [ 3%] 327s ........................................................ [ 4%] 354s tests/test_functional_adding_nzbs_clean.py . [ 4%] 355s tests/test_functional_api.py ........................................... [ 4%] 356s ........................................................................ [ 5%] 358s .............................. [ 5%] 359s tests/test_functional_misc.py E.E [ 5%] 364s tests/test_functional_sorting.py EEEEEEEEE [ 5%] 364s tests/test_getipaddress.py .... [ 5%] 364s tests/test_interface.py ................................................ [ 5%] 364s ........................................................................ [ 6%] 364s ........................................................................ [ 7%] 364s ........................................................................ [ 7%] 364s ........................................................................ [ 8%] 364s ........................................................................ [ 8%] 364s ........................................................................ [ 9%] 364s ........................................................................ [ 9%] 364s ........................................................................ [ 10%] 364s ........................................................................ [ 10%] 364s ........................................................................ [ 11%] 364s ........................................................................ [ 12%] 364s ........................................................................ [ 12%] 364s ........................................................................ [ 13%] 365s ........................................................................ [ 13%] 365s ........................................................................ [ 14%] 365s ........................................................................ [ 14%] 365s ........................................................................ [ 15%] 365s ........................................................................ [ 15%] 365s ........................................................................ [ 16%] 365s ........................................................................ [ 17%] 365s ........................................................................ [ 17%] 365s ........................................................................ [ 18%] 365s ........................................................................ [ 18%] 365s ........................................................................ [ 19%] 365s ........................................................................ [ 19%] 365s ........................................................................ [ 20%] 365s ........................................................................ [ 20%] 365s ........................................................................ [ 21%] 365s ........................................................................ [ 22%] 365s ........................................................................ [ 22%] 365s ........................................................................ [ 23%] 365s ........................................................................ [ 23%] 365s ........................................................................ [ 24%] 366s ........................................................................ [ 24%] 366s ........................................................................ [ 25%] 366s ........................................................................ [ 25%] 366s ........................................................................ [ 26%] 366s ........................................................................ [ 26%] 366s ........................................................................ [ 27%] 366s ........................................................................ [ 28%] 366s ........................................................................ [ 28%] 366s ........................................................................ [ 29%] 366s ........................................................................ [ 29%] 366s ........................................................................ [ 30%] 366s ........................................................................ [ 30%] 366s ........................................................................ [ 31%] 366s ........................................................................ [ 31%] 366s ........................................................................ [ 32%] 366s ........................................................................ [ 33%] 366s ........................................................................ [ 33%] 366s ........................................................................ [ 34%] 366s ........................................................................ [ 34%] 366s ........................................................................ [ 35%] 366s ........................................................................ [ 35%] 367s ........................................................................ [ 36%] 367s ........................................................................ [ 36%] 367s ........................................................................ [ 37%] 367s ........................................................................ [ 38%] 367s ........................................................................ [ 38%] 367s ........................................................................ [ 39%] 367s ........................................................................ [ 39%] 367s ........................................................................ [ 40%] 367s ........................................................................ [ 40%] 367s ........................................................................ [ 41%] 367s ........................................................................ [ 41%] 367s ........................................................................ [ 42%] 367s ........................................................................ [ 43%] 367s ........................................................................ [ 43%] 367s ........................................................................ [ 44%] 367s ........................................................................ [ 44%] 367s ........................................................................ [ 45%] 367s ........................................................................ [ 45%] 367s ........................................................................ [ 46%] 367s ........................................................................ [ 46%] 367s ........................................................................ [ 47%] 368s ........................................................................ [ 48%] 368s ........................................................................ [ 48%] 368s ........................................................................ [ 49%] 368s ........................................................................ [ 49%] 368s ........................................................................ [ 50%] 368s ........................................................................ [ 50%] 368s ........................................................................ [ 51%] 368s ........................................................................ [ 51%] 368s ........................................................................ [ 52%] 368s ........................................................................ [ 53%] 368s ........................................................................ [ 53%] 368s ........................................................................ [ 54%] 368s ........................................................................ [ 54%] 368s ........................................................................ [ 55%] 368s ........................................................................ [ 55%] 368s ........................................................................ [ 56%] 368s ........................................................................ [ 56%] 368s ........................................................................ [ 57%] 368s ........................................................................ [ 57%] 368s ........................................................................ [ 58%] 368s ........................................................................ [ 59%] 368s ........................................................................ [ 59%] 369s ........................................................................ [ 60%] 369s ........................................................................ [ 60%] 369s ........................................................................ [ 61%] 369s ...................................................................... [ 61%] 369s tests/test_lang.py . [ 61%] 369s tests/test_misc.py ..................................................... [ 62%] 369s ........................................................................ [ 62%] 369s ........................................................................ [ 63%] 369s ........................................................................ [ 63%] 369s ........................................................................ [ 64%] 369s ........................................................................ [ 65%] 369s ........................................................................ [ 65%] 369s ........................................................................ [ 66%] 369s ........................................................................ [ 66%] 369s ........................................................................ [ 67%] 369s ........................................................................ [ 67%] 370s ........................................................................ [ 68%] 370s ........................................................................ [ 68%] 370s ........................................................................ [ 69%] 370s ........................................................................ [ 70%] 370s ........................................................................ [ 70%] 370s ........................................................................ [ 71%] 370s ........................................................................ [ 71%] 370s ........................................................................ [ 72%] 370s ........................................................................ [ 72%] 370s ........................................................................ [ 73%] 370s ........................................................................ [ 73%] 371s ........................................................................ [ 74%] 371s ........................................................................ [ 74%] 371s ........................................................................ [ 75%] 371s ........................................................................ [ 76%] 371s ...........................s.. [ 76%] 372s tests/test_newsunpack.py ............. [ 76%] 382s tests/test_newswrapper.py ........ [ 76%] 382s tests/test_notifier.py .. [ 76%] 383s tests/test_nzbparser.py .x [ 76%] 383s tests/test_nzbstuff.py ................................................. [ 76%] 384s .. [ 76%] 384s tests/test_par2file.py .. [ 76%] 385s tests/test_postproc.py ................................................. [ 77%] 385s ........................................................................ [ 77%] 385s ........................................................................ [ 78%] 385s ........................................................................ [ 78%] 386s ............................. [ 79%] 387s tests/test_rss.py ..... [ 79%] 387s tests/test_sorting.py .................................................. [ 79%] 387s ...sssssssssssssssssssssssssss.......................................... [ 80%] 387s ........................................................................ [ 80%] 388s ........................................................................ [ 81%] 389s ........................................................................ [ 81%] 390s ........................................................................ [ 82%] 391s ........................................................................ [ 82%] 391s ........................................................................ [ 83%] 392s ........................................................................ [ 84%] 393s ........................................................................ [ 84%] 394s ........................................................................ [ 85%] 395s ........................................................................ [ 85%] 395s ................................................s....................... [ 86%] 395s ........................................................................ [ 86%] 395s ........................................................................ [ 87%] 396s ........................................................................ [ 87%] 396s ........................................................................ [ 88%] 396s ........................................................................ [ 89%] 396s ........................................................................ [ 89%] 398s ........................................................................ [ 90%] 398s ........................................................................ [ 90%] 399s ........................................................................ [ 91%] 400s ........................................................................ [ 91%] 401s ........................................................................ [ 92%] 402s ........................................................................ [ 92%] 403s ........................................................................ [ 93%] 404s ........................................................................ [ 94%] 404s ........................................................................ [ 94%] 406s ........................................................................ [ 95%] 406s ........................................................................ [ 95%] 407s ........................................................................ [ 96%] 408s ........................................................................ [ 96%] 409s ........................................................................ [ 97%] 410s ........................................................................ [ 97%] 411s ........................................................................ [ 98%] 411s ........................................................................ [ 98%] 412s ........................................................................ [ 99%] 414s ............................. [ 99%] 414s tests/test_urlgrabber.py ....127.0.0.1 - - [09/Feb/2026 05:23:35] "GET /status/242 HTTP/1.1" 242 0 414s .127.0.0.1 - - [09/Feb/2026 05:23:35] "GET /basic-auth/abcdefghijklm01234/56789nopqrstuvwxyz HTTP/1.1" 401 0 414s .....127.0.0.1 - - [09/Feb/2026 05:23:35] "GET /no/such/file HTTP/1.1" 404 207 414s ............ [ 99%] 416s tests/test_utils/test_cert_gen.py .... [ 99%] 418s tests/test_utils/test_diskspeed.py .... [ 99%] 419s tests/test_utils/test_pystone.py . [100%] 419s 419s ==================================== ERRORS ==================================== 419s ________________ ERROR at setup of TestShowLogging.test_showlog ________________ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:728: in pytest_fixture_setup 419s return (yield) 419s ^^^^^ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s ______________ ERROR at setup of TestDaemonizing.test_daemonizing ______________ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s ____ ERROR at setup of TestDownloadSorting.test_sorter_settings_conversion _____ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_season_sorting[sea_sort_s01_4k_uhd-SABnzbd-result0] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_season_sorting[sea_sort_s02_4k_uhd-SABnzbd-result1] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_sequential[Long_live_CDs_2023_576i_mono-SABnzbd-result0] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_sequential[Its_all_about_parts_2023_576i_mono-SABnzbd-result1] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result0] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result1] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result2] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s _ ERROR at setup of TestDownloadSorting.test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result3] _ 419s 419s self = 419s method = 'POST', url = '/session' 419s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 419s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 419s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 419s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 419s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 419s preload_content = True, decode_content = True, response_kw = {} 419s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 419s destination_scheme = None, conn = None, release_this_conn = True 419s http_tunnel_required = False, err = None, clean_exit = False 419s 419s def urlopen( # type: ignore[override] 419s self, 419s method: str, 419s url: str, 419s body: _TYPE_BODY | None = None, 419s headers: typing.Mapping[str, str] | None = None, 419s retries: Retry | bool | int | None = None, 419s redirect: bool = True, 419s assert_same_host: bool = True, 419s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 419s pool_timeout: int | None = None, 419s release_conn: bool | None = None, 419s chunked: bool = False, 419s body_pos: _TYPE_BODY_POSITION | None = None, 419s preload_content: bool = True, 419s decode_content: bool = True, 419s **response_kw: typing.Any, 419s ) -> BaseHTTPResponse: 419s """ 419s Get a connection from the pool and perform an HTTP request. This is the 419s lowest level call for making a request, so you'll need to specify all 419s the raw details. 419s 419s .. note:: 419s 419s More commonly, it's appropriate to use a convenience method 419s such as :meth:`request`. 419s 419s .. note:: 419s 419s `release_conn` will only behave as expected if 419s `preload_content=False` because we want to make 419s `preload_content=False` the default behaviour someday soon without 419s breaking backwards compatibility. 419s 419s :param method: 419s HTTP request method (such as GET, POST, PUT, etc.) 419s 419s :param url: 419s The URL to perform the request on. 419s 419s :param body: 419s Data to send in the request body, either :class:`str`, :class:`bytes`, 419s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 419s 419s :param headers: 419s Dictionary of custom headers to send, such as User-Agent, 419s If-None-Match, etc. If None, pool headers are used. If provided, 419s these headers completely replace any pool-specific headers. 419s 419s :param retries: 419s Configure the number of retries to allow before raising a 419s :class:`~urllib3.exceptions.MaxRetryError` exception. 419s 419s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 419s :class:`~urllib3.util.retry.Retry` object for fine-grained control 419s over different types of retries. 419s Pass an integer number to retry connection errors that many times, 419s but no other types of errors. Pass zero to never retry. 419s 419s If ``False``, then retries are disabled and any exception is raised 419s immediately. Also, instead of raising a MaxRetryError on redirects, 419s the redirect response will be returned. 419s 419s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 419s 419s :param redirect: 419s If True, automatically handle redirects (status codes 301, 302, 419s 303, 307, 308). Each redirect counts as a retry. Disabling retries 419s will disable redirect, too. 419s 419s :param assert_same_host: 419s If ``True``, will make sure that the host of the pool requests is 419s consistent else will raise HostChangedError. When ``False``, you can 419s use the pool on an HTTP proxy and request foreign hosts. 419s 419s :param timeout: 419s If specified, overrides the default timeout for this one 419s request. It may be a float (in seconds) or an instance of 419s :class:`urllib3.util.Timeout`. 419s 419s :param pool_timeout: 419s If set and the pool is set to block=True, then this method will 419s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 419s connection is available within the time period. 419s 419s :param bool preload_content: 419s If True, the response's body will be preloaded into memory. 419s 419s :param bool decode_content: 419s If True, will attempt to decode the body based on the 419s 'content-encoding' header. 419s 419s :param release_conn: 419s If False, then the urlopen call will not release the connection 419s back into the pool once a response is received (but will release if 419s you read the entire contents of the response such as when 419s `preload_content=True`). This is useful if you're not preloading 419s the response's content immediately. You will need to call 419s ``r.release_conn()`` on the response ``r`` to return the connection 419s back into the pool. If None, it takes the value of ``preload_content`` 419s which defaults to ``True``. 419s 419s :param bool chunked: 419s If True, urllib3 will send the body using chunked transfer 419s encoding. Otherwise, urllib3 will send the body using the standard 419s content-length form. Defaults to False. 419s 419s :param int body_pos: 419s Position to seek to in file-like body in the event of a retry or 419s redirect. Typically this won't need to be set because urllib3 will 419s auto-populate the value when needed. 419s """ 419s parsed_url = parse_url(url) 419s destination_scheme = parsed_url.scheme 419s 419s if headers is None: 419s headers = self.headers 419s 419s if not isinstance(retries, Retry): 419s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 419s 419s if release_conn is None: 419s release_conn = preload_content 419s 419s # Check host 419s if assert_same_host and not self.is_same_host(url): 419s raise HostChangedError(self, url, retries) 419s 419s # Ensure that the URL we're connecting to is properly encoded 419s if url.startswith("/"): 419s url = to_str(_encode_target(url)) 419s else: 419s url = to_str(parsed_url.url) 419s 419s conn = None 419s 419s # Track whether `conn` needs to be released before 419s # returning/raising/recursing. Update this variable if necessary, and 419s # leave `release_conn` constant throughout the function. That way, if 419s # the function recurses, the original value of `release_conn` will be 419s # passed down into the recursive call, and its value will be respected. 419s # 419s # See issue #651 [1] for details. 419s # 419s # [1] 419s release_this_conn = release_conn 419s 419s http_tunnel_required = connection_requires_http_tunnel( 419s self.proxy, self.proxy_config, destination_scheme 419s ) 419s 419s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 419s # have to copy the headers dict so we can safely change it without those 419s # changes being reflected in anyone else's copy. 419s if not http_tunnel_required: 419s headers = headers.copy() # type: ignore[attr-defined] 419s headers.update(self.proxy_headers) # type: ignore[union-attr] 419s 419s # Must keep the exception bound to a separate variable or else Python 3 419s # complains about UnboundLocalError. 419s err = None 419s 419s # Keep track of whether we cleanly exited the except block. This 419s # ensures we do proper cleanup in finally. 419s clean_exit = False 419s 419s # Rewind body position, if needed. Record current position 419s # for future rewinds in the event of a redirect/retry. 419s body_pos = set_file_position(body, body_pos) 419s 419s try: 419s # Request a connection from the queue. 419s timeout_obj = self._get_timeout(timeout) 419s conn = self._get_conn(timeout=pool_timeout) 419s 419s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 419s 419s # Is this a closed/new connection that requires CONNECT tunnelling? 419s if self.proxy is not None and http_tunnel_required and conn.is_closed: 419s try: 419s self._prepare_proxy(conn) 419s except (BaseSSLError, OSError, SocketTimeout) as e: 419s self._raise_timeout( 419s err=e, url=self.proxy.url, timeout_value=conn.timeout 419s ) 419s raise 419s 419s # If we're going to release the connection in ``finally:``, then 419s # the response doesn't need to know about the connection. Otherwise 419s # it will also try to release it and we'll have a double-release 419s # mess. 419s response_conn = conn if not release_conn else None 419s 419s # Make the request on the HTTPConnection object 419s > response = self._make_request( 419s conn, 419s method, 419s url, 419s timeout=timeout_obj, 419s body=body, 419s headers=headers, 419s chunked=chunked, 419s retries=retries, 419s response_conn=response_conn, 419s preload_content=preload_content, 419s decode_content=decode_content, 419s **response_kw, 419s ) 419s 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E http.client.RemoteDisconnected: Remote end closed connection without response 419s 419s /usr/lib/python3.14/http/client.py:305: RemoteDisconnected 419s 419s During handling of the above exception, another exception occurred: 419s 419s self = 419s browser_name = 'chrome', vendor_prefix = 'goog' 419s options = 419s service = 419s keep_alive = True 419s 419s def __init__( 419s self, 419s browser_name: str = None, 419s vendor_prefix: str = None, 419s options: ArgOptions = ArgOptions(), 419s service: Service = None, 419s keep_alive: bool = True, 419s ) -> None: 419s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 419s service and then creates new WebDriver instance of ChromiumDriver. 419s 419s :Args: 419s - browser_name - Browser name used when matching capabilities. 419s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 419s - options - this takes an instance of ChromiumOptions 419s - service - Service object for handling the browser driver if you need to pass extra details 419s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 419s """ 419s self.service = service 419s 419s finder = DriverFinder(self.service, options) 419s if finder.get_browser_path(): 419s options.binary_location = finder.get_browser_path() 419s options.browser_version = None 419s 419s self.service.path = finder.get_driver_path() 419s self.service.start() 419s 419s executor = ChromiumRemoteConnection( 419s remote_server_addr=self.service.service_url, 419s browser_name=browser_name, 419s vendor_prefix=vendor_prefix, 419s keep_alive=keep_alive, 419s ignore_proxy=options._ignore_local_proxy, 419s ) 419s 419s try: 419s > super().__init__(command_executor=executor, options=options) 419s 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 419s self.start_session(capabilities) 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 419s response = self.execute(Command.NEW_SESSION, caps)["value"] 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 419s response = self.command_executor.execute(driver_command, params) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 419s return self._request(command_info[0], url, body=data) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 419s response = self._conn.request(method, url, body=body, headers=headers) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 419s return self.request_encode_body( 419s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 419s return self.urlopen(method, url, **extra_kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 419s response = conn.urlopen(method, u.request_uri, **kw) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 419s retries = retries.increment( 419s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 419s raise reraise(type(error), error, _stacktrace) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 419s raise value.with_traceback(tb) 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 419s response = self._make_request( 419s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 419s response = conn.getresponse() 419s ^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 419s httplib_response = super().getresponse() 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s 419s def _read_status(self): 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s if len(line) > _MAXLINE: 419s raise LineTooLong("status line") 419s if self.debuglevel > 0: 419s print("reply:", repr(line)) 419s if not line: 419s # Presumably, the server closed the connection before 419s # sending a valid response. 419s > raise RemoteDisconnected("Remote end closed connection without" 419s " response") 419s E urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 419s 419s /usr/lib/python3.14/http/client.py:305: ProtocolError 419s 419s During handling of the above exception, another exception occurred: 419s 419s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 419s ^^^^^^^^^^^^^^^^^^^^^^^^ 419s ) 419s 419s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s tests/conftest.py:148: in run_sabnews_and_selenium 419s driver = webdriver.Chrome(options=driver_options, service=service) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 419s super().__init__( 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 419s self.quit() 419s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 419s self.service.stop() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 419s self.send_remote_shutdown_command() 419s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 419s request.urlopen(f"{self.service_url}/shutdown") 419s /usr/lib/python3.14/urllib/request.py:187: in urlopen 419s return opener.open(url, data, timeout) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:487: in open 419s response = self._open(req, data) 419s ^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:504: in _open 419s result = self._call_chain(self.handle_open, protocol, protocol + 419s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 419s result = func(*args) 419s ^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1350: in http_open 419s return self.do_open(http.client.HTTPConnection, req) 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/urllib/request.py:1325: in do_open 419s r = h.getresponse() 419s ^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:1450: in getresponse 419s response.begin() 419s /usr/lib/python3.14/http/client.py:336: in begin 419s version, status, reason = self._read_status() 419s ^^^^^^^^^^^^^^^^^^^ 419s /usr/lib/python3.14/http/client.py:297: in _read_status 419s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 419s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 419s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 419s 419s self = 419s b = 419s 419s def readinto(self, b): 419s """Read up to len(b) bytes into the writable buffer *b* and return 419s the number of bytes read. If the socket is non-blocking and no bytes 419s are available, None is returned. 419s 419s If *b* is non-empty, a 0 return value indicates that the connection 419s was shutdown at the other end. 419s """ 419s self._checkClosed() 419s self._checkReadable() 419s if self._timeout_occurred: 419s raise OSError("cannot read from timed out object") 419s try: 419s > return self._sock.recv_into(b) 419s ^^^^^^^^^^^^^^^^^^^^^^^ 419s E ConnectionResetError: [Errno 104] Connection reset by peer 419s 419s /usr/lib/python3.14/socket.py:725: ConnectionResetError 419s ===Flaky Test Report=== 419s 420s test_sorter_settings_conversion failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_sorter_settings_conversion failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_sorter_settings_conversion failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_season_sorting[sea_sort_s01_4k_uhd-SABnzbd-result0] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_season_sorting[sea_sort_s01_4k_uhd-SABnzbd-result0] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_season_sorting[sea_sort_s01_4k_uhd-SABnzbd-result0] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_season_sorting[sea_sort_s02_4k_uhd-SABnzbd-result1] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_season_sorting[sea_sort_s02_4k_uhd-SABnzbd-result1] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_season_sorting[sea_sort_s02_4k_uhd-SABnzbd-result1] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sequential[Long_live_CDs_2023_576i_mono-SABnzbd-result0] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sequential[Long_live_CDs_2023_576i_mono-SABnzbd-result0] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sequential[Long_live_CDs_2023_576i_mono-SABnzbd-result0] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sequential[Its_all_about_parts_2023_576i_mono-SABnzbd-result1] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sequential[Its_all_about_parts_2023_576i_mono-SABnzbd-result1] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sequential[Its_all_about_parts_2023_576i_mono-SABnzbd-result1] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result0] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result0] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result0] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result1] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result1] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result1] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result2] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result2] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result2] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result3] failed (2 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result3] failed (1 runs remaining out of 3). 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result3] failed; it passed 0 out of the required 1 times. 420s 420s [Errno 104] Connection reset by peer 420s [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] 420s test_newswrapper[None-TLSv1.3-None-True] passed 1 out of the required 1 times. Success! 420s test_newswrapper[771-TLSv1.2-None-True] passed 1 out of the required 1 times. Success! 420s test_newswrapper[768-None-None-False] passed 1 out of the required 1 times. Success! 420s test_newswrapper[769-None-None-False] passed 1 out of the required 1 times. Success! 420s test_newswrapper[770-None-None-False] passed 1 out of the required 1 times. Success! 420s test_newswrapper[None-None-RC4-MD5-False] passed 1 out of the required 1 times. Success! 420s test_newswrapper[None-TLSv1.2-AES256-SHA-True] passed 1 out of the required 1 times. Success! 420s test_newswrapper[None-None-TLS_AES_128_CCM_SHA256-False] passed 1 out of the required 1 times. Success! 420s 420s ===End Flaky Test Report=== 420s =========================== short test summary info ============================ 420s ERROR tests/test_functional_misc.py::TestShowLogging::test_showlog - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_misc.py::TestDaemonizing::test_daemonizing - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_sorter_settings_conversion - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_season_sorting[sea_sort_s01_4k_uhd-SABnzbd-result0] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_season_sorting[sea_sort_s02_4k_uhd-SABnzbd-result1] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_sequential[Long_live_CDs_2023_576i_mono-SABnzbd-result0] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_sequential[Its_all_about_parts_2023_576i_mono-SABnzbd-result1] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result0] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_sorting_single[SINGLE_sort_s23e06_480i-SABnzbd-result1] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result2] - ConnectionResetError: [Errno 104] Connection reset by peer 420s ERROR tests/test_functional_sorting.py::TestDownloadSorting::test_download_sorting_single[single-ep_sort_s06e66_4k_uhd-SABnzbd-result3] - ConnectionResetError: [Errno 104] Connection reset by peer 420s = 12961 passed, 37 skipped, 10 deselected, 2 xfailed, 11 errors in 125.59s (0:02:05) = 421s autopkgtest [05:23:42]: test upstream-tests: -----------------------] 423s autopkgtest [05:23:44]: test upstream-tests: - - - - - - - - - - results - - - - - - - - - - 423s upstream-tests FAIL non-zero exit status 1 423s autopkgtest [05:23:44]: @@@@@@@@@@@@@@@@@@@@ summary 423s basic-runs PASS (superficial) 423s upstream-tests FAIL non-zero exit status 1