0s autopkgtest [05:16:42]: starting date and time: 2026-02-09 05:16:42+0000 0s autopkgtest [05:16:42]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [05:16:42]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.53hinph4/out --timeout-copy=6000 --needs-internet=try -a i386 --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-15@sto01-32.secgroup --name adt-resolute-i386-sabnzbdplus-20260209-051642-juju-7f2275-prod-proposed-migration-environment-15-b92abbd9-18fc-4f36-b132-05d89bb57bbd --image adt/ubuntu-resolute-amd64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-autopkgtest-workers-amd64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-i386-sabnzbdplus-20260209-051642-juju-7f2275-prod-proposed-migration-environment-15-b92abbd9-18fc-4f36-b132-05d89bb57bbd from image adt/ubuntu-resolute-amd64-server-20260204.img (UUID fedf54b4-458b-493e-8072-6425c19717b4)... 75s autopkgtest [05:17:57]: testbed dpkg architecture: amd64 75s autopkgtest [05:17:57]: testbed apt version: 3.1.14 75s autopkgtest [05:17:57]: @@@@@@@@@@@@@@@@@@@@ test bed setup 76s autopkgtest [05:17:58]: testbed release detected to be: None 76s autopkgtest [05:17:58]: updating testbed package index (apt update) 76s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 76s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 76s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 76s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 76s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [29.4 kB] 76s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [164 kB] 77s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1598 kB] 77s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main i386 Packages [204 kB] 77s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main amd64 Packages [240 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 i386 Packages [641 kB] 77s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe amd64 Packages [1574 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 (6274 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] 80s 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] 83s 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] 83s Get:71 http://ftpmaster.internal/ubuntu resolute/main amd64 amd64-microcode amd64 3.20251202.1ubuntu1 [459 kB] 83s Get:72 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-generic amd64 6.19.0-3.3 [1698 B] 83s Get:73 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-generic amd64 6.19.0-3.3 [12.2 kB] 83s Get:74 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-virtual amd64 6.19.0-3.3 [1700 B] 83s Get:75 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-image-virtual amd64 6.19.0-3.3 [12.1 kB] 83s Get:76 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-virtual amd64 6.19.0-3.3 [1646 B] 83s Get:77 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3 all 6.19.0-3.3 [14.9 MB] 84s Get:78 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-6.19.0-3-generic amd64 6.19.0-3.3 [4330 kB] 84s Get:79 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-headers-generic amd64 6.19.0-3.3 [12.0 kB] 84s Get:80 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-perf amd64 6.19.0-3.3 [4480 kB] 84s Get:81 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-common all 6.19.0-3.3 [345 kB] 84s Get:82 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3 amd64 6.19.0-3.3 [1455 kB] 84s Get:83 http://ftpmaster.internal/ubuntu resolute/main amd64 linux-tools-6.19.0-3-generic amd64 6.19.0-3.3 [1612 B] 84s Get:84 http://ftpmaster.internal/ubuntu resolute/main amd64 patch amd64 2.8-2build1 [95.7 kB] 84s Get:85 http://ftpmaster.internal/ubuntu resolute/main amd64 pollinate all 4.33-4ubuntu5 [14.0 kB] 84s Get:86 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-referencing all 0.36.2-1ubuntu2 [22.2 kB] 84s Get:87 http://ftpmaster.internal/ubuntu resolute/main amd64 ubuntu-kernel-accessories amd64 1.564 [13.1 kB] 84s dpkg-preconfigure: unable to re-open stdin: No such file or directory 84s Fetched 233 MB in 4s (58.5 MB/s) 84s (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.) 84s Preparing to unpack .../debianutils_5.23.2build1_amd64.deb ... 84s Unpacking debianutils (5.23.2build1) over (5.23.2) ... 84s Setting up debianutils (5.23.2build1) ... 84s (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.) 84s Preparing to unpack .../dash_0.5.12-12ubuntu3_amd64.deb ... 84s Unpacking dash (0.5.12-12ubuntu3) over (0.5.12-12ubuntu2) ... 84s Setting up dash (0.5.12-12ubuntu3) ... 84s (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.) 84s Preparing to unpack .../findutils_4.10.0-3build2_amd64.deb ... 84s Unpacking findutils (4.10.0-3build2) over (4.10.0-3build1) ... 84s Setting up findutils (4.10.0-3build2) ... 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 .../sed_4.9-2build3_amd64.deb ... 85s Unpacking sed (4.9-2build3) over (4.9-2build2) ... 85s Setting up sed (4.9-2build3) ... 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 .../tar_1.35+dfsg-3.1build2_amd64.deb ... 85s Unpacking tar (1.35+dfsg-3.1build2) over (1.35+dfsg-3.1build1) ... 85s Setting up tar (1.35+dfsg-3.1build2) ... 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 .../libattr1_1%3a2.5.2-3build2_amd64.deb ... 85s Unpacking libattr1:amd64 (1:2.5.2-3build2) over (1:2.5.2-3build1) ... 85s Setting up libattr1:amd64 (1:2.5.2-3build2) ... 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 .../00-libbsd0_0.12.2-2build2_amd64.deb ... 85s Unpacking libbsd0:amd64 (0.12.2-2build2) over (0.12.2-2build1) ... 85s Preparing to unpack .../01-mawk_1.3.4.20260129-1_amd64.deb ... 85s Unpacking mawk (1.3.4.20260129-1) over (1.3.4.20250131-2) ... 85s Preparing to unpack .../02-libapt-pkg7.0_3.1.15_amd64.deb ... 85s Unpacking libapt-pkg7.0:amd64 (3.1.15) over (3.1.14) ... 85s Preparing to unpack .../03-apt_3.1.15_amd64.deb ... 85s Unpacking apt (3.1.15) over (3.1.14) ... 85s Preparing to unpack .../04-dbus-system-bus-common_1.16.2-2ubuntu3_all.deb ... 85s Unpacking dbus-system-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../05-dbus-session-bus-common_1.16.2-2ubuntu3_all.deb ... 85s Unpacking dbus-session-bus-common (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../06-dbus-user-session_1.16.2-2ubuntu3_amd64.deb ... 85s Unpacking dbus-user-session (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../07-dbus-daemon_1.16.2-2ubuntu3_amd64.deb ... 85s Unpacking dbus-daemon (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../08-dbus-bin_1.16.2-2ubuntu3_amd64.deb ... 85s Unpacking dbus-bin (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../09-dbus_1.16.2-2ubuntu3_amd64.deb ... 85s Unpacking dbus (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../10-libdbus-1-3_1.16.2-2ubuntu3_amd64.deb ... 85s Unpacking libdbus-1-3:amd64 (1.16.2-2ubuntu3) over (1.16.2-2ubuntu2) ... 85s Preparing to unpack .../11-libdevmapper1.02.1_2%3a1.02.205-2ubuntu3_amd64.deb ... 85s Unpacking libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 85s Preparing to unpack .../12-dmsetup_2%3a1.02.205-2ubuntu3_amd64.deb ... 85s Unpacking dmsetup (2:1.02.205-2ubuntu3) over (2:1.02.205-2ubuntu2) ... 85s Preparing to unpack .../13-ethtool_1%3a6.15-3build1_amd64.deb ... 85s Unpacking ethtool (1:6.15-3build1) over (1:6.15-3) ... 85s Preparing to unpack .../14-gir1.2-girepository-3.0_2.87.2-2_amd64.deb ... 85s Unpacking gir1.2-girepository-3.0:amd64 (2.87.2-2) over (2.86.3-4) ... 85s Preparing to unpack .../15-libgirepository-2.0-0_2.87.2-2_amd64.deb ... 85s Unpacking libgirepository-2.0-0:amd64 (2.87.2-2) over (2.86.3-4) ... 85s Preparing to unpack .../16-gir1.2-glib-2.0_2.87.2-2_amd64.deb ... 85s Unpacking gir1.2-glib-2.0:amd64 (2.87.2-2) over (2.86.3-4) ... 85s Preparing to unpack .../17-libglib2.0-0t64_2.87.2-2_amd64.deb ... 85s Unpacking libglib2.0-0t64:amd64 (2.87.2-2) over (2.86.3-4) ... 85s Preparing to unpack .../18-less_668-1build1_amd64.deb ... 85s Unpacking less (668-1build1) over (668-1) ... 86s Preparing to unpack .../19-libbpf1_1%3a1.6.2-1build1_amd64.deb ... 86s Unpacking libbpf1:amd64 (1:1.6.2-1build1) over (1:1.6.2-1) ... 86s Preparing to unpack .../20-libglib2.0-data_2.87.2-2_all.deb ... 86s Unpacking libglib2.0-data (2.87.2-2) over (2.86.3-4) ... 86s Preparing to unpack .../21-libidn2-0_2.3.8-4build1_amd64.deb ... 86s Unpacking libidn2-0:amd64 (2.3.8-4build1) over (2.3.8-4) ... 86s Preparing to unpack .../22-libkeyutils1_1.6.3-6ubuntu3_amd64.deb ... 86s Unpacking libkeyutils1:amd64 (1.6.3-6ubuntu3) over (1.6.3-6ubuntu2) ... 86s Preparing to unpack .../23-python3-linkify-it_2.0.3-1ubuntu3_all.deb ... 86s Unpacking python3-linkify-it (2.0.3-1ubuntu3) over (2.0.3-1ubuntu2) ... 86s Preparing to unpack .../24-python3-markdown-it_3.0.0-3build1_all.deb ... 86s Unpacking python3-markdown-it (3.0.0-3build1) over (3.0.0-3) ... 86s Preparing to unpack .../25-shared-mime-info_2.4-5build3_amd64.deb ... 86s Unpacking shared-mime-info (2.4-5build3) over (2.4-5build2) ... 86s Preparing to unpack .../26-busybox-static_1%3a1.37.0-7ubuntu1_amd64.deb ... 86s Unpacking busybox-static (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 86s Preparing to unpack .../27-libdrm-common_2.4.131-1_all.deb ... 86s Unpacking libdrm-common (2.4.131-1) over (2.4.129-1) ... 86s Preparing to unpack .../28-libdrm2_2.4.131-1_amd64.deb ... 86s Unpacking libdrm2:amd64 (2.4.131-1) over (2.4.129-1) ... 86s Preparing to unpack .../29-libgdbm6t64_1.26-1build1_amd64.deb ... 86s Unpacking libgdbm6t64:amd64 (1.26-1build1) over (1.26-1) ... 86s Preparing to unpack .../30-libgpm2_1.20.7-12build1_amd64.deb ... 86s Unpacking libgpm2:amd64 (1.20.7-12build1) over (1.20.7-12) ... 86s Preparing to unpack .../31-libjansson4_2.14-2build4_amd64.deb ... 86s Unpacking libjansson4:amd64 (2.14-2build4) over (2.14-2build3) ... 86s Preparing to unpack .../32-lsof_4.99.4+dfsg-2build2_amd64.deb ... 86s Unpacking lsof (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 86s Preparing to unpack .../33-liblsof0_4.99.4+dfsg-2build2_amd64.deb ... 86s Unpacking liblsof0 (4.99.4+dfsg-2build2) over (4.99.4+dfsg-2build1) ... 86s Preparing to unpack .../34-libmaxminddb0_1.12.2-1build2_amd64.deb ... 86s Unpacking libmaxminddb0:amd64 (1.12.2-1build2) over (1.12.2-1build1) ... 86s Preparing to unpack .../35-libnetfilter-conntrack3_1.1.1-1_amd64.deb ... 86s Unpacking libnetfilter-conntrack3:amd64 (1.1.1-1) over (1.1.0-1build1) ... 86s Preparing to unpack .../36-libpcap0.8t64_1.10.5-2ubuntu3_amd64.deb ... 86s Unpacking libpcap0.8t64:amd64 (1.10.5-2ubuntu3) over (1.10.5-2ubuntu2) ... 86s Preparing to unpack .../37-pciutils_1%3a3.14.0-1build2_amd64.deb ... 86s Unpacking pciutils (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 86s Preparing to unpack .../38-libpci3_1%3a3.14.0-1build2_amd64.deb ... 86s Unpacking libpci3:amd64 (1:3.14.0-1build2) over (1:3.14.0-1build1) ... 86s Preparing to unpack .../39-libsensors-config_1%3a3.6.2-2build1_all.deb ... 86s Unpacking libsensors-config (1:3.6.2-2build1) over (1:3.6.2-2) ... 86s Preparing to unpack .../40-libsensors5_1%3a3.6.2-2build1_amd64.deb ... 86s Unpacking libsensors5:amd64 (1:3.6.2-2build1) over (1:3.6.2-2) ... 86s Preparing to unpack .../41-libusb-1.0-0_2%3a1.0.29-2build1_amd64.deb ... 86s Unpacking libusb-1.0-0:amd64 (2:1.0.29-2build1) over (2:1.0.29-2) ... 86s Preparing to unpack .../42-libxau6_1%3a1.0.11-1build2_amd64.deb ... 86s Unpacking libxau6:amd64 (1:1.0.11-1build2) over (1:1.0.11-1build1) ... 86s Preparing to unpack .../43-libxkbcommon0_1.13.1-1_amd64.deb ... 86s Unpacking libxkbcommon0:amd64 (1.13.1-1) over (1.12.3-1) ... 86s Preparing to unpack .../44-man-db_2.13.1-1build1_amd64.deb ... 86s Unpacking man-db (2.13.1-1build1) over (2.13.1-1) ... 87s Preparing to unpack .../45-tcpdump_4.99.5-2ubuntu3_amd64.deb ... 87s Unpacking tcpdump (4.99.5-2ubuntu3) over (4.99.5-2ubuntu2) ... 87s Preparing to unpack .../46-ubuntu-standard_1.564_amd64.deb ... 87s Unpacking ubuntu-standard (1.564) over (1.563) ... 87s Preparing to unpack .../47-3cpio_0.14.0-1ubuntu1_amd64.deb ... 87s Unpacking 3cpio (0.14.0-1ubuntu1) over (0.13.1-1ubuntu1) ... 87s Preparing to unpack .../48-bpftool_7.7.0+6.19.0-3.3_amd64.deb ... 87s Unpacking bpftool (7.7.0+6.19.0-3.3) over (7.7.0+6.18.0-9.9) ... 87s Preparing to unpack .../49-busybox-initramfs_1%3a1.37.0-7ubuntu1_amd64.deb ... 87s Unpacking busybox-initramfs (1:1.37.0-7ubuntu1) over (1:1.37.0-4ubuntu1) ... 87s Preparing to unpack .../50-hwdata_0.394-1build1_all.deb ... 87s Unpacking hwdata (0.394-1build1) over (0.394-1) ... 87s Preparing to unpack .../51-pnp.ids_0.394-1build1_all.deb ... 87s Unpacking pnp.ids (0.394-1build1) over (0.394-1) ... 87s Preparing to unpack .../52-libdrm-amdgpu1_2.4.131-1_amd64.deb ... 87s Unpacking libdrm-amdgpu1:amd64 (2.4.131-1) over (2.4.129-1) ... 87s Preparing to unpack .../53-libevent-core-2.1-7t64_2.1.12-stable-10build2_amd64.deb ... 87s Unpacking libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) over (2.1.12-stable-10build1) ... 87s Preparing to unpack .../54-libgdbm-compat4t64_1.26-1build1_amd64.deb ... 87s Unpacking libgdbm-compat4t64:amd64 (1.26-1build1) over (1.26-1) ... 87s Preparing to unpack .../55-libgudev-1.0-0_1%3a238-7build1_amd64.deb ... 87s Unpacking libgudev-1.0-0:amd64 (1:238-7build1) over (1:238-7) ... 87s Preparing to unpack .../56-libnpth0t64_1.8-3build1_amd64.deb ... 87s Unpacking libnpth0t64:amd64 (1.8-3build1) over (1.8-3) ... 87s Preparing to unpack .../57-libonig5_6.9.10-1build1_amd64.deb ... 87s Unpacking libonig5:amd64 (6.9.10-1build1) over (6.9.10-1) ... 87s Selecting previously unselected package libpython3.14-minimal:amd64. 87s Preparing to unpack .../58-libpython3.14-minimal_3.14.2-1_amd64.deb ... 87s Unpacking libpython3.14-minimal:amd64 (3.14.2-1) ... 87s Selecting previously unselected package libpython3.14-stdlib:amd64. 87s Preparing to unpack .../59-libpython3.14-stdlib_3.14.2-1_amd64.deb ... 87s Unpacking libpython3.14-stdlib:amd64 (3.14.2-1) ... 87s Selecting previously unselected package libpython3.14:amd64. 87s Preparing to unpack .../60-libpython3.14_3.14.2-1_amd64.deb ... 87s Unpacking libpython3.14:amd64 (3.14.2-1) ... 87s Preparing to unpack .../61-libwrap0_7.6.q-36build2_amd64.deb ... 87s Unpacking libwrap0:amd64 (7.6.q-36build2) over (7.6.q-36build1) ... 87s Selecting previously unselected package linux-modules-6.19.0-3-generic. 87s Preparing to unpack .../62-linux-modules-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 87s Unpacking linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 88s Selecting previously unselected package linux-image-6.19.0-3-generic. 88s Preparing to unpack .../63-linux-image-6.19.0-3-generic_6.19.0-3.3+1_amd64.deb ... 88s Unpacking linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 88s Preparing to unpack .../64-amd64-microcode_3.20251202.1ubuntu1_amd64.deb ... 88s Unpacking amd64-microcode (3.20251202.1ubuntu1) over (3.20250708.1ubuntu1) ... 88s Preparing to unpack .../65-linux-generic_6.19.0-3.3_amd64.deb ... 88s Unpacking linux-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 88s Preparing to unpack .../66-linux-image-generic_6.19.0-3.3_amd64.deb ... 88s Unpacking linux-image-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 88s Preparing to unpack .../67-linux-virtual_6.19.0-3.3_amd64.deb ... 88s Unpacking linux-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 88s Preparing to unpack .../68-linux-image-virtual_6.19.0-3.3_amd64.deb ... 88s Unpacking linux-image-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 88s Preparing to unpack .../69-linux-headers-virtual_6.19.0-3.3_amd64.deb ... 88s Unpacking linux-headers-virtual (6.19.0-3.3) over (6.18.0-9.9+1) ... 88s Selecting previously unselected package linux-headers-6.19.0-3. 88s Preparing to unpack .../70-linux-headers-6.19.0-3_6.19.0-3.3_all.deb ... 88s Unpacking linux-headers-6.19.0-3 (6.19.0-3.3) ... 90s Selecting previously unselected package linux-headers-6.19.0-3-generic. 90s Preparing to unpack .../71-linux-headers-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 90s Preparing to unpack .../72-linux-headers-generic_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-headers-generic (6.19.0-3.3) over (6.18.0-9.9+1) ... 90s Preparing to unpack .../73-linux-perf_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-perf (6.19.0-3.3) over (6.18.0-9.9) ... 90s Preparing to unpack .../74-linux-tools-common_6.19.0-3.3_all.deb ... 90s Unpacking linux-tools-common (6.19.0-3.3) over (6.18.0-9.9) ... 90s Selecting previously unselected package linux-tools-6.19.0-3. 90s Preparing to unpack .../75-linux-tools-6.19.0-3_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-tools-6.19.0-3 (6.19.0-3.3) ... 90s Selecting previously unselected package linux-tools-6.19.0-3-generic. 90s Preparing to unpack .../76-linux-tools-6.19.0-3-generic_6.19.0-3.3_amd64.deb ... 90s Unpacking linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 90s Preparing to unpack .../77-patch_2.8-2build1_amd64.deb ... 90s Unpacking patch (2.8-2build1) over (2.8-2) ... 90s Preparing to unpack .../78-pollinate_4.33-4ubuntu5_all.deb ... 90s Unpacking pollinate (4.33-4ubuntu5) over (4.33-4ubuntu4) ... 90s Preparing to unpack .../79-python3-referencing_0.36.2-1ubuntu2_all.deb ... 90s Unpacking python3-referencing (0.36.2-1ubuntu2) over (0.36.2-1ubuntu1) ... 90s Preparing to unpack .../80-ubuntu-kernel-accessories_1.564_amd64.deb ... 90s Unpacking ubuntu-kernel-accessories (1.564) over (1.563) ... 90s Setting up 3cpio (0.14.0-1ubuntu1) ... 90s Setting up libxau6:amd64 (1:1.0.11-1build2) ... 90s Setting up libnpth0t64:amd64 (1.8-3build1) ... 90s Setting up libkeyutils1:amd64 (1.6.3-6ubuntu3) ... 90s Setting up ubuntu-kernel-accessories (1.564) ... 90s Setting up libgpm2:amd64 (1.20.7-12build1) ... 90s Setting up libgdbm6t64:amd64 (1.26-1build1) ... 90s Setting up linux-modules-6.19.0-3-generic (6.19.0-3.3) ... 92s Setting up libgdbm-compat4t64:amd64 (1.26-1build1) ... 92s Setting up bpftool (7.7.0+6.19.0-3.3) ... 92s Setting up liblsof0 (4.99.4+dfsg-2build2) ... 92s Setting up libmaxminddb0:amd64 (1.12.2-1build2) ... 92s Setting up libpython3.14-minimal:amd64 (3.14.2-1) ... 92s Setting up libsensors-config (1:3.6.2-2build1) ... 92s Setting up less (668-1build1) ... 92s Setting up linux-headers-6.19.0-3 (6.19.0-3.3) ... 92s Setting up libidn2-0:amd64 (2.3.8-4build1) ... 92s Setting up amd64-microcode (3.20251202.1ubuntu1) ... 92s amd64-microcode: microcode will be updated at next boot 92s Setting up man-db (2.13.1-1build1) ... 92s Updating database of manual pages ... 93s man-db.service is a disabled or a static unit not running, not starting it. 93s Setting up libjansson4:amd64 (2.14-2build4) ... 93s Setting up libglib2.0-0t64:amd64 (2.87.2-2) ... 93s No schema files found: doing nothing. 93s Setting up libglib2.0-data (2.87.2-2) ... 93s Setting up pollinate (4.33-4ubuntu5) ... 104s Setting up busybox-static (1:1.37.0-7ubuntu1) ... 104s Setting up libwrap0:amd64 (7.6.q-36build2) ... 104s Setting up linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 105s I: /boot/vmlinuz is now a symlink to vmlinuz-6.19.0-3-generic 105s I: /boot/initrd.img is now a symlink to initrd.img-6.19.0-3-generic 105s Setting up libdbus-1-3:amd64 (1.16.2-2ubuntu3) ... 105s Setting up shared-mime-info (2.4-5build3) ... 106s Setting up patch (2.8-2build1) ... 106s Setting up gir1.2-glib-2.0:amd64 (2.87.2-2) ... 106s Setting up libsensors5:amd64 (1:3.6.2-2build1) ... 106s Setting up busybox-initramfs (1:1.37.0-7ubuntu1) ... 106s Setting up lsof (4.99.4+dfsg-2build2) ... 106s Setting up libpci3:amd64 (1:3.14.0-1build2) ... 106s Setting up libdevmapper1.02.1:amd64 (2:1.02.205-2ubuntu3) ... 106s Setting up dmsetup (2:1.02.205-2ubuntu3) ... 106s Setting up libnetfilter-conntrack3:amd64 (1.1.1-1) ... 106s Setting up pnp.ids (0.394-1build1) ... 106s Setting up dbus-session-bus-common (1.16.2-2ubuntu3) ... 106s Setting up python3-linkify-it (2.0.3-1ubuntu3) ... 106s Setting up libpcap0.8t64:amd64 (1.10.5-2ubuntu3) ... 106s Setting up mawk (1.3.4.20260129-1) ... 106s Setting up libevent-core-2.1-7t64:amd64 (2.1.12-stable-10build2) ... 106s Setting up libusb-1.0-0:amd64 (2:1.0.29-2build1) ... 106s Setting up libapt-pkg7.0:amd64 (3.1.15) ... 106s Setting up linux-image-virtual (6.19.0-3.3) ... 106s Setting up dbus-system-bus-common (1.16.2-2ubuntu3) ... 106s Setting up libbsd0:amd64 (0.12.2-2build2) ... 106s Setting up libdrm-common (2.4.131-1) ... 106s Setting up dbus-bin (1.16.2-2ubuntu3) ... 106s Setting up libonig5:amd64 (6.9.10-1build1) ... 106s Setting up libgudev-1.0-0:amd64 (1:238-7build1) ... 106s Setting up libbpf1:amd64 (1:1.6.2-1build1) ... 106s Setting up ethtool (1:6.15-3build1) ... 106s Setting up python3-referencing (0.36.2-1ubuntu2) ... 106s Setting up libxkbcommon0:amd64 (1.13.1-1) ... 106s Setting up linux-headers-6.19.0-3-generic (6.19.0-3.3) ... 106s Setting up tcpdump (4.99.5-2ubuntu3) ... 106s Setting up linux-image-generic (6.19.0-3.3) ... 106s Setting up apt (3.1.15) ... 106s Setting up libgirepository-2.0-0:amd64 (2.87.2-2) ... 106s Setting up libpython3.14-stdlib:amd64 (3.14.2-1) ... 106s Setting up linux-headers-generic (6.19.0-3.3) ... 106s Setting up dbus-daemon (1.16.2-2ubuntu3) ... 106s Setting up gir1.2-girepository-3.0:amd64 (2.87.2-2) ... 106s Setting up hwdata (0.394-1build1) ... 106s Setting up dbus-user-session (1.16.2-2ubuntu3) ... 106s Setting up dbus (1.16.2-2ubuntu3) ... 106s A reboot is required to replace the running dbus-daemon. 106s Please reboot the system when convenient. 106s Setting up pciutils (1:3.14.0-1build2) ... 106s Setting up python3-markdown-it (3.0.0-3build1) ... 107s Setting up libdrm2:amd64 (2.4.131-1) ... 107s Setting up libpython3.14:amd64 (3.14.2-1) ... 107s Setting up linux-tools-common (6.19.0-3.3) ... 107s Setting up libdrm-amdgpu1:amd64 (2.4.131-1) ... 107s Setting up linux-headers-virtual (6.19.0-3.3) ... 107s Setting up linux-generic (6.19.0-3.3) ... 107s Setting up linux-tools-6.19.0-3 (6.19.0-3.3) ... 107s Setting up ubuntu-standard (1.564) ... 107s Setting up linux-virtual (6.19.0-3.3) ... 107s Setting up linux-perf (6.19.0-3.3) ... 107s Setting up linux-tools-6.19.0-3-generic (6.19.0-3.3) ... 107s Processing triggers for debianutils (5.23.2build1) ... 107s Processing triggers for install-info (7.2-5) ... 107s Processing triggers for initramfs-tools (0.150ubuntu7) ... 107s update-initramfs: Generating /boot/initrd.img-6.18.0-9-generic 112s Processing triggers for libc-bin (2.42-2ubuntu4) ... 112s Processing triggers for linux-image-6.19.0-3-generic (6.19.0-3.3+1) ... 112s /etc/kernel/postinst.d/initramfs-tools: 112s update-initramfs: Generating /boot/initrd.img-6.19.0-3-generic 116s /etc/kernel/postinst.d/zz-update-grub: 116s Sourcing file `/etc/default/grub' 116s Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg' 116s Sourcing file `/etc/default/grub.d/90-autopkgtest.cfg' 116s Generating grub configuration file ... 116s Found linux image: /boot/vmlinuz-6.19.0-3-generic 116s Found initrd image: /boot/initrd.img-6.19.0-3-generic 116s Found linux image: /boot/vmlinuz-6.18.0-9-generic 116s Found initrd image: /boot/initrd.img-6.18.0-9-generic 116s Warning: os-prober will not be executed to detect other bootable partitions. 116s Systems on them will not be added to the GRUB boot configuration. 116s Check GRUB_DISABLE_OS_PROBER documentation entry. 116s Adding boot menu entry for UEFI Firmware Settings ... 116s done 116s autopkgtest [05:18:38]: upgrading testbed (apt dist-upgrade and autopurge) 117s Reading package lists... 117s Building dependency tree... 117s Reading state information... 117s Calculating upgrade... 117s The following package was automatically installed and is no longer required: 117s libpython3.13 117s Use 'sudo apt autoremove' to remove it. 117s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 117s Reading package lists... 117s Building dependency tree... 117s Reading state information... 117s Solving dependencies... 118s The following packages will be REMOVED: 118s libpython3.13* 118s 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 118s After this operation, 7599 kB disk space will be freed. 118s (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.) 118s Removing libpython3.13:amd64 (3.13.11-1) ... 118s Processing triggers for libc-bin (2.42-2ubuntu4) ... 118s autopkgtest [05:18:40]: rebooting testbed after setup commands that affected boot 147s autopkgtest [05:19:09]: 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:11]: @@@@@@@@@@@@@@@@@@@@ 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 150s autopkgtest [05:19:12]: testing package sabnzbdplus version 4.5.4+dfsg-4 150s autopkgtest [05:19:12]: build not needed 151s autopkgtest [05:19:13]: test basic-runs: preparing testbed 151s 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] 152s Get:13 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-cheetah amd64 3.4.0-1build2 [141 kB] 152s Get:14 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-cheroot all 11.1.2+ds1-1 [81.5 kB] 152s Get:15 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-jaraco.collections all 5.1.0-1build1 [12.9 kB] 152s 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 1s (5805 kB/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) ... 154s Selecting previously unselected package python3-cheetah. 154s Preparing to unpack .../12-python3-cheetah_3.4.0-1build2_amd64.deb ... 154s Unpacking python3-cheetah (3.4.0-1build2) ... 154s Selecting previously unselected package python3-cheroot. 154s Preparing to unpack .../13-python3-cheroot_11.1.2+ds1-1_all.deb ... 154s Unpacking python3-cheroot (11.1.2+ds1-1) ... 154s Selecting previously unselected package python3-jaraco.collections. 154s Preparing to unpack .../14-python3-jaraco.collections_5.1.0-1build1_all.deb ... 154s Unpacking python3-jaraco.collections (5.1.0-1build1) ... 154s Selecting previously unselected package python3-tempora. 154s Preparing to unpack .../15-python3-tempora_5.7.0-2build1_all.deb ... 154s Unpacking python3-tempora (5.7.0-2build1) ... 154s Selecting previously unselected package python3-portend. 154s Preparing to unpack .../16-python3-portend_3.2.0-1build1_all.deb ... 154s Unpacking python3-portend (3.2.0-1build1) ... 154s Selecting previously unselected package python3-zc.lockfile. 154s Preparing to unpack .../17-python3-zc.lockfile_4.0-2_all.deb ... 154s Unpacking python3-zc.lockfile (4.0-2) ... 154s Selecting previously unselected package python3-cherrypy3. 154s Preparing to unpack .../18-python3-cherrypy3_18.10.0-2_all.deb ... 154s Unpacking python3-cherrypy3 (18.10.0-2) ... 154s Selecting previously unselected package python3-sgmllib3k. 154s Preparing to unpack .../19-python3-sgmllib3k_1.0.0-5build1_all.deb ... 154s Unpacking python3-sgmllib3k (1.0.0-5build1) ... 154s Selecting previously unselected package python3-feedparser. 154s Preparing to unpack .../20-python3-feedparser_6.0.12-1_all.deb ... 154s Unpacking python3-feedparser (6.0.12-1) ... 154s Selecting previously unselected package python3-babelfish. 154s Preparing to unpack .../21-python3-babelfish_0.6.1-1build1_all.deb ... 154s Unpacking python3-babelfish (0.6.1-1build1) ... 154s Selecting previously unselected package python3-toposort. 154s Preparing to unpack .../22-python3-toposort_1.10-2build1_all.deb ... 154s Unpacking python3-toposort (1.10-2build1) ... 154s Selecting previously unselected package python3-rebulk. 154s Preparing to unpack .../23-python3-rebulk_3.3.0-4_all.deb ... 154s Unpacking python3-rebulk (3.3.0-4) ... 154s Selecting previously unselected package python3-guessit. 154s Preparing to unpack .../24-python3-guessit_3.8.0-4build1_all.deb ... 154s Unpacking python3-guessit (3.8.0-4build1) ... 154s Selecting previously unselected package python3-puremagic. 154s Preparing to unpack .../25-python3-puremagic_1.30-1_all.deb ... 154s Unpacking python3-puremagic (1.30-1) ... 154s Selecting previously unselected package python3-rarfile. 154s Preparing to unpack .../26-python3-rarfile_4.2-3_all.deb ... 154s Unpacking python3-rarfile (4.2-3) ... 154s Selecting previously unselected package python3-sabctools. 154s Preparing to unpack .../27-python3-sabctools_8.2.6-2_amd64.deb ... 154s Unpacking python3-sabctools (8.2.6-2) ... 154s Selecting previously unselected package python3-socks. 154s Preparing to unpack .../28-python3-socks_1.7.1+dfsg-1build1_all.deb ... 154s Unpacking python3-socks (1.7.1+dfsg-1build1) ... 154s Selecting previously unselected package python3-orjson. 154s Preparing to unpack .../29-python3-orjson_3.11.5-1_amd64.deb ... 154s Unpacking python3-orjson (3.11.5-1) ... 154s Selecting previously unselected package unrar. 154s Preparing to unpack .../30-unrar_1%3a7.2.4-1_amd64.deb ... 154s Unpacking unrar (1:7.2.4-1) ... 154s Selecting previously unselected package sabnzbdplus. 154s Preparing to unpack .../31-sabnzbdplus_4.5.4+dfsg-4_all.deb ... 154s 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) ... 155s Setting up par2 (1.1.1-1) ... 155s Setting up python3-cheroot (11.1.2+ds1-1) ... 155s 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) ... 156s Setting up python3-cherrypy3 (18.10.0-2) ... 156s 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) ... 157s Processing triggers for shared-mime-info (2.4-5build3) ... 157s Processing triggers for libc-bin (2.42-2ubuntu4) ... 158s autopkgtest [05:19:20]: test environment configured for cross building 158s autopkgtest [05:19:20]: 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' 159s 2026-02-09 05:19:20,796::INFO::[sabnzbdplus:1135] -------------------------------- 159s 2026-02-09 05:19:20,796::INFO::[sabnzbdplus:1136] sabnzbdplus-4.5.4 159s 2026-02-09 05:19:20,796::INFO::[sabnzbdplus:1137] Full executable path = /usr/bin/sabnzbdplus 159s 2026-02-09 05:19:20,797::INFO::[sabnzbdplus:1138] Arguments = "/usr/bin/sabnzbdplus" "--logging" "1" "--browser" "0" "--config-file" "/tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/xvoHholt.ini" 159s 2026-02-09 05:19:20,797::INFO::[sabnzbdplus:1147] Certifi version = 2026.01.04 159s 2026-02-09 05:19:20,797::INFO::[sabnzbdplus:1148] Loaded additional certificates from /etc/ssl/certs/ca-certificates.crt 159s 2026-02-09 05:19:20,797::INFO::[sabnzbdplus:1154] Using INI file /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/xvoHholt.ini 159s 2026-02-09 05:19:20,798::INFO::[filesystem:725] Creating directories: /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/Downloads/incomplete 159s 2026-02-09 05:19:20,798::INFO::[filesystem:725] Creating directories: /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/Downloads/complete 159s 2026-02-09 05:19:20,798::INFO::[cfg:794] Config conversion set 1 159s 2026-02-09 05:19:20,798::INFO::[cfg:830] Config conversion set 2 159s 2026-02-09 05:19:20,798::INFO::[cfg:835] Config conversion set 3 159s 2026-02-09 05:19:20,798::INFO::[cfg:846] Config conversion set 4 159s 2026-02-09 05:19:20,799::INFO::[config:999] Writing settings to INI file /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/xvoHholt.ini 159s 2026-02-09 05:19:20,800::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/admin/totals10.sab missing 159s 2026-02-09 05:19:20,807::INFO::[postproc:141] Loading postproc queue 159s 2026-02-09 05:19:20,807::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/admin/postproc2.sab missing 159s 2026-02-09 05:19:20,807::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/admin/watched_data2.sab missing 159s 2026-02-09 05:19:20,807::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/admin/rss_data.sab missing 159s 2026-02-09 05:19:20,807::INFO::[scheduler:191] Scheduling RSS interval task every 60 min (delay=38) 159s 2026-02-09 05:19:20,808::INFO::[scheduler:200] Setting schedule for midnight auto history-purge 159s 2026-02-09 05:19:20,808::INFO::[scheduler:209] Setting schedule for midnight BPS reset 159s 2026-02-09 05:19:20,808::INFO::[scheduler:218] Setting schedule for midnight server expiration check 159s 2026-02-09 05:19:20,808::INFO::[scheduler:227] Setting schedule for server quota check 159s 2026-02-09 05:19:20,808::INFO::[filesystem:1089] [N/A] /tmp/autopkgtest.dO5pik/autopkgtest_tmp/settings/admin/queue10.sab missing 159s 2026-02-09 05:19:20,808::INFO::[__init__:306] All processes started 159s 2026-02-09 05:19:20,808::INFO::[sabnzbdplus:338] Template location for Glitter is /usr/share/sabnzbdplus/interfaces/Glitter 159s 2026-02-09 05:19:20,808::INFO::[sabnzbdplus:338] Template location for Config is /usr/share/sabnzbdplus/interfaces/Config 159s 2026-02-09 05:19:20,809::INFO::[misc:1326] [N/A] Running external command: ['/usr/bin/unrar'] 159s 2026-02-09 05:19:20,811::INFO::[misc:1326] [N/A] Running external command: ['/usr/bin/7za'] 159s 2026-02-09 05:19:20,812::INFO::[misc:1326] [N/A] Running external command: ['/usr/bin/par2', '-V'] 159s 2026-02-09 05:19:20,813::INFO::[sabnzbdplus:423] SABCTools module (v8.2.6)... found! 159s 2026-02-09 05:19:20,813::INFO::[sabnzbdplus:424] SABCTools module is using SIMD set: AVX2 159s 2026-02-09 05:19:20,813::INFO::[sabnzbdplus:425] SABCTools module is linked to OpenSSL: True 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:442] Cryptography module (v43.0.0)... found! 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:445] par2 binary... found (/usr/bin/par2) 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:452] UNRAR binary... found (/usr/bin/unrar) 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:460] UNRAR binary version 7.20 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:467] 7za binary... found (/usr/bin/7za) 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:469] 7za binary version 25.01 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:475] nice binary... found (/usr/bin/nice) 159s 2026-02-09 05:19:20,814::INFO::[sabnzbdplus:479] ionice binary... found (/usr/bin/ionice) 159s 2026-02-09 05:19:20,815::INFO::[sabnzbdplus:1351] Starting web-interface on 127.0.0.1:8080 159s 2026-02-09 05:19:20,815::INFO::[_cplogging:213] [09/Feb/2026:05:19:20] ENGINE Bus STARTING 159s 2026-02-09 05:19:20,916::INFO::[_cplogging:213] [09/Feb/2026:05:19:20] ENGINE Serving on http://127.0.0.1:8080 159s 2026-02-09 05:19:20,917::INFO::[_cplogging:213] [09/Feb/2026:05:19:20] ENGINE Bus STARTED 159s 2026-02-09 05:19:20,917::INFO::[sabnzbdplus:1390] Starting sabnzbdplus-4.5.4 159s 2026-02-09 05:19:20,918::INFO::[dirscanner:112] Dirscanner starting up 159s 2026-02-09 05:19:20,918::INFO::[notifier:166] Sending notification: SABnzbd - SABnzbd 4.5.4 started (type=startup, job_cat=None) 159s 2026-02-09 05:19:20,919::INFO::[__init__:460] Commit = 977dbc805f8c29fe097f2c646959471f06464b16 159s 2026-02-09 05:19:20,919::INFO::[__init__:461] Python-version = 3.13.11 (main, Dec 6 2025, 13:15:20) [GCC 15.2.0] 159s 2026-02-09 05:19:20,919::INFO::[__init__:462] CPU architecture = x86_64 159s 2026-02-09 05:19:20,919::INFO::[misc:1326] [N/A] Running external command: ['systemd-detect-virt'] 159s 2026-02-09 05:19:20,921::INFO::[__init__:463] Platform = kvm Ubuntu Resolute Raccoon (development branch) 159s 2026-02-09 05:19:20,921::INFO::[__init__:464] JSON-module = orjson 3.11.5 159s 2026-02-09 05:19:20,921::INFO::[__init__:465] Preferred encoding = UTF-8 159s 2026-02-09 05:19:20,921::INFO::[__init__:466] SSL version = OpenSSL 3.5.3 16 Sep 2025 188s 2026-02-09 05:19:50,584::INFO::[notifier:166] Sending notification: Warning - Signal 15 caught, saving and exiting... (type=warning, job_cat=None) 188s 2026-02-09 05:19:50,584::WARNING::[__init__:202] Signal 15 caught, saving and exiting... 188s 2026-02-09 05:19:50,585::INFO::[__init__:419] [N/A] Performing SABnzbd shutdown 188s 2026-02-09 05:19:50,585::INFO::[__init__:336] SABnzbd shutting down... 188s 2026-02-09 05:19:50,585::INFO::[directunpacker:551] Aborting all DirectUnpackers 188s 2026-02-09 05:19:50,585::INFO::[notifier:166] Sending notification: SABnzbd - Shutting down (type=startup, job_cat=None) 188s 2026-02-09 05:19:50,586::INFO::[downloader:643] Shutting down 188s 2026-02-09 05:19:50,586::INFO::[nzbqueue:230] Saving queue 188s 2026-02-09 05:19:50,587::INFO::[postproc:136] Saving postproc queue 188s 2026-02-09 05:19:50,587::INFO::[__init__:405] All processes stopped 188s 2026-02-09 05:19:50,587::INFO::[_cplogging:213] [09/Feb/2026:05:19:50] ENGINE Bus STOPPING 189s 2026-02-09 05:19:51,073::INFO::[_cplogging:213] [09/Feb/2026:05:19:51] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 8080)) shut down 189s 2026-02-09 05:19:51,084::INFO::[_cplogging:213] [09/Feb/2026:05:19:51] ENGINE Bus STOPPED 189s 2026-02-09 05:19:51,089::INFO::[_cplogging:213] [09/Feb/2026:05:19:51] ENGINE Bus EXITING 189s 2026-02-09 05:19:51,089::INFO::[_cplogging:213] [09/Feb/2026:05:19:51] ENGINE Bus EXITED 189s 2026-02-09 05:19:51,089::INFO::[notifier:166] Sending notification: SABnzbd - SABnzbd shutdown finished (type=startup, job_cat=None) 189s 2026-02-09 05:19:51,089::INFO::[sabnzbdplus:1486] Leaving SABnzbd 189s 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/xvoHholt.ini' 203s removed 'settings/logs/sabnzbd.log' 203s removed directory 'settings/logs' 203s removed 'settings/xvoHholt.ini.bak' 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 directory 'settings' 204s autopkgtest [05:20:06]: test basic-runs: -----------------------] 204s autopkgtest [05:20:06]: test basic-runs: - - - - - - - - - - results - - - - - - - - - - 204s basic-runs PASS (superficial) 204s autopkgtest [05:20:06]: test upstream-tests: preparing testbed 204s Reading package lists... 205s Building dependency tree... 205s Reading state information... 205s Solving dependencies... 205s The following NEW packages will be installed: 205s chromium-browser chromium-chromedriver libblas3 libgfortran5 liblapack3 205s python3-all python3-asgiref python3-brotli python3-brotlicffi 205s python3-decorator python3-django python3-flaky python3-flasgger 205s python3-flask python3-greenlet python3-h11 python3-httpbin python3-iniconfig 205s python3-itsdangerous python3-mistune python3-numpy python3-numpy-dev 205s python3-outcome python3-pandas python3-pandas-lib python3-pluggy python3-py 205s python3-pyfakefs python3-pytest python3-pytest-asyncio 205s python3-pytest-httpbin python3-pytest-httpserver python3-pytest-mock 205s python3-pytz python3-selenium python3-sniffio python3-sortedcontainers 205s python3-sqlparse python3-trio python3-trio-websocket python3-websocket 205s python3-werkzeug python3-wsproto python3-xlrd python3-xmltodict python3.14 205s python3.14-minimal snapd squashfs-tools 205s 0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded. 205s Need to get 72.6 MB of archives. 205s After this operation, 322 MB of additional disk space will be used. 205s Get:1 http://ftpmaster.internal/ubuntu resolute/main amd64 squashfs-tools amd64 1:4.7.4-1 [227 kB] 205s 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] 206s Get:8 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-numpy amd64 1:2.3.5+ds-3 [8129 kB] 206s Get:9 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14-minimal amd64 3.14.2-1 [2563 kB] 206s Get:10 http://ftpmaster.internal/ubuntu resolute/universe amd64 chromium-chromedriver amd64 2:1snap1-0ubuntu3 [2312 B] 206s Get:11 http://ftpmaster.internal/ubuntu resolute/main amd64 python3.14 amd64 3.14.2-1 [816 kB] 206s Get:12 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-all amd64 3.13.9-3 [890 B] 206s Get:13 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-asgiref all 3.11.0-1 [25.2 kB] 206s Get:14 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-brotli amd64 1.1.0-2build6 [340 kB] 206s Get:15 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-brotlicffi amd64 1.2.0.0+ds-2 [21.8 kB] 206s Get:16 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-decorator all 5.2.1-2 [28.1 kB] 206s Get:17 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-sqlparse all 0.5.4-1 [34.3 kB] 206s Get:18 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-django all 3:5.2.9-0ubuntu2 [3038 kB] 206s Get:19 http://ftpmaster.internal/ubuntu resolute/universe amd64 python3-flaky all 3.8.1-4 [16.8 kB] 206s Get:20 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-itsdangerous all 2.2.0-2build1 [15.4 kB] 206s Get:21 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-werkzeug all 3.1.5-1 [170 kB] 206s Get:22 http://ftpmaster.internal/ubuntu resolute/main amd64 python3-flask all 3.1.2-1ubuntu1 [84.7 kB] 206s 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 1s (52.9 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'. 208s Created symlink '/etc/systemd/system/sockets.target.wants/snapd.socket' → '/usr/lib/systemd/system/snapd.socket'. 208s 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. 210s Selecting previously unselected package chromium-browser. 210s (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.) 210s Preparing to unpack .../00-chromium-browser_2%3a1snap1-0ubuntu3_amd64.deb ... 210s => Installing the chromium snap 210s ==> Checking connectivity with the snap store 210s ==> 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" /[?25l Download snap "snapd" (25935) from channel "stable" 1% 5.47MB/s 9.12s Download snap "snapd" (25935) from channel "stable" 9% 22.4MB/s 2.04s Download snap "snapd" (25935) from channel "stable" 28% 44.7MB/s 813ms Download snap "snapd" (25935) from channel "stable" 46% 55.0MB/s 497ms Download snap "snapd" (25935) from channel "stable"  65% 62.6MB/s 280ms Download snap "snapd" (25935) from channel "stable" 85% 68.2MB/s 110ms Download snap "snapd" (25935) from channel "stable" 100% 68.7MB/s 0.0ns 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 | Setup snap "snapd" (25935) security profiles / Automatically connect eligible plugs and slots of snap "snapd" - 2026-02-09T05:20:16Z 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" - Start snap "snapd" (25935) services \ 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% 697kB/s 1m40s Download snap "core24" (1349) from channel "stable" 0% 465kB/s 2m30s Download snap "core24" (1349) from channel "stable" 1% 1.06MB/s 1m06s Download snap "core24" (1349) from channel "stable" 1% 1.69MB/s 41.0s Download snap "core24" (1349) from channel "stable" 3% 2.82MB/s 24.3s Download snap "core24" (1349) from channel "stable" 5% 5.04MB/s 13.2s Download snap "core24" (1349) from channel "stable" 10% 8.29MB/s 7.63s Download snap "core24" (1349) from channel "stable" 14% 10.7MB/s 5.63s Download snap "core24" (1349) from channel "stable" 19% 12.6MB/s 4.54s Download snap "core24" (1349) from channel "stable" 23% 14.3MB/s 3.77s Download snap "core24" (1349) from channel "stable" 28% 15.5MB/s 3.26s Download snap "core24" (1349) from channel "stable" 32% 16.7MB/s 2.84s Download snap "core24" (1349) from channel "stable" 37% 17.8MB/s 2.49s Download snap "core24" (1349) from channel "stable" 41% 18.7MB/s 2.20s Download snap "core24" (1349) from channel "stable" 46% 19.4MB/s 1.94s Download snap "core24" (1349) from channel "stable" 50% 20.0MB/s 1.73s Download snap "core24" (1349) from channel "stable" 55% 20.7MB/s 1.52s Download snap "core24" (1349) from channel "stable" 60% 21.2MB/s 1.33s Download snap "core24" (1349) from channel "stable" 64% 21.7MB/s 1.15s Download snap "core24" (1349) from channel "stable"  69% 22.1MB/s 984ms Download snap "core24" (1349) from channel "stable"  74% 22.5MB/s 823ms Download snap "core24" (1349) from channel "stable" 78% 22.9MB/s 668ms Download snap "core24" (1349) from channel "stable" 83% 23.2MB/s 527ms Download snap "core24" (1349) from channel "stable" 87% 23.5MB/s 383ms Download snap "core24" (1349) from channel "stable" 92% 23.8MB/s 242ms Download snap "core24" (1349) from channel "stable" 96% 24.1MB/s 105ms Download snap "core24" (1349) from channel "stable" 100% 24.1MB/s 0.0ns 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 \ 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" \ 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) \[?25l Mount snap "bare" (5) | Mount snap "bare" (5) / Download snap "chromium" (3354) from channel "stable" 0% 1.15MB/s 2m42s 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" - Download snap "core22" (2292) from channel "stable" \ Download snap "core22" (2292) from channel "stable" |[?25l Download snap "core22" (2292) from channel "stable" 0% 1.56MB/s 49.7s Download snap "core22" (2292) from channel "stable" 0% 1.56MB/s 49.7s Download snap "core22" (2292) from channel "stable" 1% 2.06MB/s 37.3s Download snap "core22" (2292) from channel "stable" 1% 1.94MB/s 39.6s Download snap "core22" (2292) from channel "stable" 2% 2.47MB/s 30.9s Download snap "core22" (2292) from channel "stable" 3% 3.09MB/s 24.5s Download snap "core22" (2292) from channel "stable" 4% 3.98MB/s 18.8s Download snap "core22" (2292) from channel "stable" 6% 5.41MB/s 13.5s Download snap "core22" (2292) from channel "stable" 9% 7.39MB/s 9.55s Download snap "core22" (2292) from channel "stable" 14% 10.4MB/s 6.43s Download snap "core22" (2292) from channel "stable" 22% 14.7MB/s 4.11s Download snap "core22" (2292) from channel "stable" 33% 20.4MB/s 2.53s Download snap "core22" (2292) from channel "stable" 46% 25.7MB/s 1.64s Download snap "core22" (2292) from channel "stable" 58% 30.4MB/s 1.07s Download snap "core22" (2292) from channel "stable"  70% 34.4MB/s 665ms Download snap "core22" (2292) from channel "stable" 83% 38.0MB/s 344ms Download snap "core22" (2292) from channel "stable" 95% 40.9MB/s 92ms[?25l 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) / Download snap "mesa-2404" (1165) from channel "stable" 53% 274MB/s 706ms Run install hook of "core22" snap if present - Download snap "mesa-2404" (1165) from channel "stable" 57% 184MB/s 960ms Download snap "mesa-2404" (1165) from channel "stable" 60% 179MB/s 925ms Download snap "mesa-2404" (1165) from channel "stable" 62% 172MB/s 908ms Download snap "mesa-2404" (1165) from channel "stable" 65% 166MB/s 878ms Download snap "mesa-2404" (1165) from channel "stable" 67% 162MB/s 848ms Download snap "mesa-2404" (1165) from channel "stable"  69% 158MB/s 805ms Download snap "mesa-2404" (1165) from channel "stable"  72% 154MB/s 759ms Download snap "mesa-2404" (1165) from channel "stable"  74% 151MB/s 708ms Download snap "mesa-2404" (1165) from channel "stable"  77% 148MB/s 657ms Download snap "mesa-2404" (1165) from channel "stable" 78% 133MB/s 686ms Download snap "mesa-2404" (1165) from channel "stable" 80% 131MB/s 621ms Download snap "mesa-2404" (1165) from channel "stable" 82% 127MB/s 578ms Download snap "mesa-2404" (1165) from channel "stable" 86% 129MB/s 437ms Download snap "mesa-2404" (1165) from channel "stable" 90% 129MB/s 334ms Download snap "mesa-2404" (1165) from channel "stable" 92% 127MB/s 266ms Download snap "mesa-2404" (1165) from channel "stable" 94% 126MB/s 182ms Download snap "mesa-2404" (1165) from channel "stable" 97% 125MB/s 104ms Download snap "mesa-2404" (1165) from channel "stable" 99% 124MB/s 17ms Download snap "mesa-2404" (1165) from channel "stable" 100% 121MB/s 0.0ns Download snap "mesa-2404" (1165) from channel "stable" 100% 117MB/s 0.0ns 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) \ Mount snap "mesa-2404" (1165) | Mount snap "mesa-2404" (1165) /[?25l 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 / Connect cups:network-bind to snapd:network-bind - 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 \ 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 "gnome-46-2404" (153) from channel "stable" 50% 57.4MB/s 5.52s Download snap "gnome-46-2404" (153) from channel "stable" 50% 56.6MB/s 5.59s Download snap "gnome-46-2404" (153) from channel "stable" 51% 55.9MB/s 5.60s Download snap "gnome-46-2404" (153) from channel "stable" 51% 55.6MB/s 5.57s Download snap "gnome-46-2404" (153) from channel "stable" 52% 55.2MB/s 5.54s Download snap "gnome-46-2404" (153) from channel "stable" 52% 54.6MB/s 5.55s Download snap "gnome-46-2404" (153) from channel "stable" 53% 54.3MB/s 5.52s Download snap "gnome-46-2404" (153) from channel "stable" 53% 53.8MB/s 5.49s Download snap "gnome-46-2404" (153) from channel "stable" 54% 53.6MB/s 5.45s Download snap "gnome-46-2404" (153) from channel "stable" 54% 53.1MB/s 5.45s Download snap "gnome-46-2404" (153) from channel "stable" 55% 50.7MB/s 5.64s Download snap "gnome-46-2404" (153) from channel "stable" 57% 51.5MB/s 5.32s Download snap "gnome-46-2404" (153) from channel "stable" 57% 51.3MB/s 5.27s Download snap "gnome-46-2404" (153) from channel "stable" 58% 50.9MB/s 5.26s Download snap "gnome-46-2404" (153) from channel "stable" 58% 50.7MB/s 5.21s Download snap "gnome-46-2404" (153) from channel "stable" 59% 50.3MB/s 5.19s Download snap "gnome-46-2404" (153) from channel "stable" 59% 50.1MB/s 5.14s Download snap "gnome-46-2404" (153) from channel "stable" 60% 49.8MB/s 5.12s Download snap "gnome-46-2404" (153) from channel "stable" 60% 49.5MB/s 5.07s Download snap "gnome-46-2404" (153) from channel "stable" 61% 49.3MB/s 5.01s Download snap "gnome-46-2404" (153) from channel "stable" 61% 49.0MB/s 4.99s Download snap "gnome-46-2404" (153) from channel "stable" 62% 48.9MB/s 4.93s Download snap "gnome-46-2404" (153) from channel "stable" 62% 48.5MB/s 4.91s Download snap "gnome-46-2404" (153) from channel "stable" 63% 48.4MB/s 4.85s Download snap "gnome-46-2404" (153) from channel "stable" 64% 48.2MB/s 4.79s Download snap "gnome-46-2404" (153) from channel "stable" 64% 47.9MB/s 4.76s Download snap "gnome-46-2404" (153) from channel "stable" 65% 47.8MB/s 4.70s Download snap "gnome-46-2404" (153) from channel "stable" 65% 47.5MB/s 4.67s Download snap "gnome-46-2404" (153) from channel "stable" 66% 47.4MB/s 4.60s Download snap "gnome-46-2404" (153) from channel "stable" 66% 47.1MB/s 4.58s Download snap "gnome-46-2404" (153) from channel "stable" 67% 46.9MB/s 4.51s Download snap "gnome-46-2404" (153) from channel "stable" 67% 46.8MB/s 4.44s Download snap "gnome-46-2404" (153) from channel "stable" 68% 46.6MB/s 4.41s Download snap "gnome-46-2404" (153) from channel "stable" 68% 46.5MB/s 4.34s Download snap "gnome-46-2404" (153) from channel "stable" 69% 46.2MB/s 4.30s Download snap "gnome-46-2404" (153) from channel "stable" 69% 46.1MB/s 4.23s Download snap "gnome-46-2404" (153) from channel "stable" 70% 45.9MB/s 4.20s Download snap "gnome-46-2404" (153) from channel "stable" 70% 45.8MB/s 4.12s Download snap "gnome-46-2404" (153) from channel "stable" 71% 45.5MB/s 4.09s Download snap "gnome-46-2404" (153) from channel "stable" 71% 45.4MB/s 4.01s Download snap "gnome-46-2404" (153) from channel "stable" 72% 45.2MB/s 3.98s Download snap "gnome-46-2404" (153) from channel "stable" 72% 45.1MB/s 3.90s Download snap "gnome-46-2404" (153) from channel "stable"  73% 44.9MB/s 3.86s Download snap "gnome-46-2404" (153) from channel "stable"  73% 44.8MB/s 3.78s Download snap "gnome-46-2404" (153) from channel "stable"  74% 44.6MB/s 3.74s Download snap "gnome-46-2404" (153) from channel "stable"  74% 44.5MB/s 3.67s Download snap "gnome-46-2404" (153) from channel "stable"  75% 44.5MB/s 3.59s Download snap "gnome-46-2404" (153) from channel "stable"  75% 44.3MB/s 3.54s Download snap "gnome-46-2404" (153) from channel "stable"  76% 44.2MB/s 3.46s Download snap "gnome-46-2404" (153) from channel "stable"  76% 44.0MB/s 3.42s Download snap "gnome-46-2404" (153) from channel "stable"  77% 43.9MB/s 3.34s Download snap "gnome-46-2404" (153) from channel "stable"  77% 43.7MB/s 3.30s Download snap "gnome-46-2404" (153) from channel "stable" 78% 43.6MB/s 3.22s Download snap "gnome-46-2404" (153) from channel "stable" 79% 43.6MB/s 3.13s Download snap "gnome-46-2404" (153) from channel "stable" 79% 43.4MB/s 3.09s Download snap "gnome-46-2404" (153) from channel "stable" 80% 43.3MB/s 3.00s Download snap "gnome-46-2404" (153) from channel "stable" 80% 43.1MB/s 2.96s Download snap "gnome-46-2404" (153) from channel "stable" 81% 43.1MB/s 2.87s Download snap "gnome-46-2404" (153) from channel "stable" 81% 42.9MB/s 2.82s Download snap "gnome-46-2404" (153) from channel "stable" 82% 42.9MB/s 2.74s Download snap "gnome-46-2404" (153) from channel "stable" 82% 42.7MB/s 2.69s Download snap "gnome-46-2404" (153) from channel "stable" 83% 42.6MB/s 2.60s Download snap "gnome-46-2404" (153) from channel "stable" 83% 42.6MB/s 2.52s Download snap "gnome-46-2404" (153) from channel "stable" 84% 42.4MB/s 2.47s Download snap "gnome-46-2404" (153) from channel "stable" 84% 42.4MB/s 2.38s Download snap "gnome-46-2404" (153) from channel "stable" 85% 42.2MB/s 2.33s Download snap "gnome-46-2404" (153) from channel "stable" 85% 42.2MB/s 2.24s Download snap "gnome-46-2404" (153) from channel "stable" 86% 42.1MB/s 2.19s Download snap "gnome-46-2404" (153) from channel "stable" 86% 42.0MB/s 2.10s Download snap "gnome-46-2404" (153) from channel "stable" 87% 41.9MB/s 2.05s Download snap "gnome-46-2404" (153) from channel "stable" 87% 41.8MB/s 1.96s Download snap "gnome-46-2404" (153) from channel "stable" 88% 41.8MB/s 1.87s Download snap "gnome-46-2404" (153) from channel "stable" 88% 41.6MB/s 1.81s Download snap "gnome-46-2404" (153) from channel "stable" 89% 41.6MB/s 1.72s Download snap "gnome-46-2404" (153) from channel "stable" 89% 41.5MB/s 1.67s Download snap "gnome-46-2404" (153) from channel "stable" 90% 41.4MB/s 1.57s Download snap "gnome-46-2404" (153) from channel "stable" 90% 41.3MB/s 1.52s Download snap "gnome-46-2404" (153) from channel "stable" 91% 41.3MB/s 1.43s Download snap "gnome-46-2404" (153) from channel "stable" 91% 41.1MB/s 1.37s Download snap "gnome-46-2404" (153) from channel "stable" 92% 41.1MB/s 1.28s Download snap "gnome-46-2404" (153) from channel "stable" 92% 41.1MB/s 1.19s Download snap "gnome-46-2404" (153) from channel "stable" 93% 40.9MB/s 1.13s Download snap "gnome-46-2404" (153) from channel "stable" 93% 40.9MB/s 1.03s Download snap "gnome-46-2404" (153) from channel "stable" 94% 40.8MB/s 975ms Download snap "gnome-46-2404" (153) from channel "stable" 94% 40.8MB/s 882ms Download snap "gnome-46-2404" (153) from channel "stable" 95% 40.6MB/s 822ms Download snap "gnome-46-2404" (153) from channel "stable" 95% 40.6MB/s 728ms Download snap "gnome-46-2404" (153) from channel "stable" 96% 40.5MB/s 668ms Download snap "gnome-46-2404" (153) from channel "stable" 96% 40.5MB/s 574ms Download snap "gnome-46-2404" (153) from channel "stable" 97% 40.4MB/s 512ms Download snap "gnome-46-2404" (153) from channel "stable" 97% 40.3MB/s 418ms Download snap "gnome-46-2404" (153) from channel "stable" 98% 40.3MB/s 324ms Download snap "gnome-46-2404" (153) from channel "stable" 98% 40.2MB/s 261ms Download snap "gnome-46-2404" (153) from channel "stable" 99% 40.2MB/s 166ms Download snap "gnome-46-2404" (153) from channel "stable" 99% 40.1MB/s 103ms Download snap "gnome-46-2404" (153) from channel "stable" 100% 40.0MB/s 0.0ns Download snap "gnome-46-2404" (153) from channel "stable" 100% 39.8MB/s 0.0ns Download snap "gnome-46-2404" (153) from channel "stable" 100% 39.5MB/s 0.0ns Fetch and check assertions for snap "gnome-46-2404" (153) \ Fetch and check assertions for snap "gnome-46-2404" (153) | Mount snap "gnome-46-2404" (153) / Mount snap "gnome-46-2404" (153) - Mount snap "gnome-46-2404" (153) \ Mount snap "gnome-46-2404" (153) | Automatically connect eligible plugs and slots of snap "chromium" / Run install hook of "gnome-46-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" \ 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:dot-local-share-icons to snapd:personal-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 \ 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) ... 273s Selecting previously unselected package python3-flaky. 273s Preparing to unpack .../16-python3-flaky_3.8.1-4_all.deb ... 273s Unpacking python3-flaky (3.8.1-4) ... 273s Selecting previously unselected package python3-itsdangerous. 273s Preparing to unpack .../17-python3-itsdangerous_2.2.0-2build1_all.deb ... 273s Unpacking python3-itsdangerous (2.2.0-2build1) ... 273s Selecting previously unselected package python3-werkzeug. 273s Preparing to unpack .../18-python3-werkzeug_3.1.5-1_all.deb ... 273s Unpacking python3-werkzeug (3.1.5-1) ... 273s Selecting previously unselected package python3-flask. 273s Preparing to unpack .../19-python3-flask_3.1.2-1ubuntu1_all.deb ... 273s Unpacking python3-flask (3.1.2-1ubuntu1) ... 273s Selecting previously unselected package python3-mistune. 273s Preparing to unpack .../20-python3-mistune_3.1.4-1_all.deb ... 273s Unpacking python3-mistune (3.1.4-1) ... 273s Selecting previously unselected package python3-flasgger. 273s Preparing to unpack .../21-python3-flasgger_0.9.7.2~dev2+dfsg-4_all.deb ... 273s Unpacking python3-flasgger (0.9.7.2~dev2+dfsg-4) ... 273s Selecting previously unselected package python3-h11. 273s Preparing to unpack .../22-python3-h11_0.14.0-1.1_all.deb ... 273s Unpacking python3-h11 (0.14.0-1.1) ... 273s Selecting previously unselected package python3-greenlet. 273s Preparing to unpack .../23-python3-greenlet_3.2.4-3_amd64.deb ... 273s Unpacking python3-greenlet (3.2.4-3) ... 273s Selecting previously unselected package python3-httpbin. 273s Preparing to unpack .../24-python3-httpbin_0.10.2+dfsg-2build1_all.deb ... 273s Unpacking python3-httpbin (0.10.2+dfsg-2build1) ... 273s Selecting previously unselected package python3-iniconfig. 273s Preparing to unpack .../25-python3-iniconfig_2.1.0-2_all.deb ... 273s Unpacking python3-iniconfig (2.1.0-2) ... 273s Selecting previously unselected package python3-outcome. 273s Preparing to unpack .../26-python3-outcome_1.2.0-2_all.deb ... 273s Unpacking python3-outcome (1.2.0-2) ... 273s Selecting previously unselected package python3-pytz. 273s Preparing to unpack .../27-python3-pytz_2025.2-5_all.deb ... 273s Unpacking python3-pytz (2025.2-5) ... 273s Selecting previously unselected package python3-pandas-lib:amd64. 273s Preparing to unpack .../28-python3-pandas-lib_2.3.3+dfsg-3_amd64.deb ... 273s 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) ... 274s Setting up python3-sniffio (1.3.1-1) ... 274s Setting up python3-outcome (1.2.0-2) ... 274s 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) ... 275s Setting up python3-xmltodict (0.13.0-1ubuntu1) ... 275s Setting up libblas3:amd64 (3.12.1-7ubuntu1) ... 275s 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 275s Setting up python3-sqlparse (0.5.4-1) ... 275s 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) ... 276s Setting up python3-brotli (1.1.0-2build6) ... 276s 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) ... 277s Setting up python3-mistune (3.1.4-1) ... 277s Setting up python3-websocket (1.8.0-2build1) ... 277s Setting up python3.14-minimal (3.14.2-1) ... 278s Setting up python3-asgiref (3.11.0-1) ... 278s Setting up liblapack3:amd64 (3.12.1-7ubuntu1) ... 278s 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 278s 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) ... 280s Setting up python3-flask (3.1.2-1ubuntu1) ... 280s 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) ... 289s 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) ... 292s autopkgtest [05:21:34]: test environment configured for cross building 292s autopkgtest [05:21:34]: 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.dO5pik/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%] 318s tests/test_filesystem.py .........................s..................... [ 2%] 319s ..................sssss....................... [ 3%] 321s 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%] 365s ........................................................................ [ 9%] 365s ........................................................................ [ 10%] 365s ........................................................................ [ 10%] 365s ........................................................................ [ 11%] 365s ........................................................................ [ 12%] 365s ........................................................................ [ 12%] 365s ........................................................................ [ 13%] 365s ........................................................................ [ 13%] 365s ........................................................................ [ 14%] 365s ........................................................................ [ 14%] 365s ........................................................................ [ 15%] 366s ........................................................................ [ 15%] 366s ........................................................................ [ 16%] 366s ........................................................................ [ 17%] 366s ........................................................................ [ 17%] 366s ........................................................................ [ 18%] 366s ........................................................................ [ 18%] 366s ........................................................................ [ 19%] 366s ........................................................................ [ 19%] 366s ........................................................................ [ 20%] 366s ........................................................................ [ 20%] 366s ........................................................................ [ 21%] 366s ........................................................................ [ 22%] 366s ........................................................................ [ 22%] 366s ........................................................................ [ 23%] 366s ........................................................................ [ 23%] 366s ........................................................................ [ 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%] 367s ........................................................................ [ 32%] 367s ........................................................................ [ 33%] 367s ........................................................................ [ 33%] 367s ........................................................................ [ 34%] 367s ........................................................................ [ 34%] 367s ........................................................................ [ 35%] 367s ........................................................................ [ 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%] 368s ........................................................................ [ 44%] 368s ........................................................................ [ 44%] 368s ........................................................................ [ 45%] 368s ........................................................................ [ 45%] 368s ........................................................................ [ 46%] 368s ........................................................................ [ 46%] 368s ........................................................................ [ 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%] 369s ........................................................................ [ 55%] 369s ........................................................................ [ 56%] 369s ........................................................................ [ 56%] 369s ........................................................................ [ 57%] 369s ........................................................................ [ 57%] 369s ........................................................................ [ 58%] 369s ........................................................................ [ 59%] 369s ........................................................................ [ 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%] 370s ........................................................................ [ 66%] 370s ........................................................................ [ 66%] 370s ........................................................................ [ 67%] 370s ........................................................................ [ 67%] 370s ........................................................................ [ 68%] 370s ........................................................................ [ 68%] 370s ........................................................................ [ 69%] 371s ........................................................................ [ 70%] 371s ........................................................................ [ 70%] 371s ........................................................................ [ 71%] 371s ........................................................................ [ 71%] 371s ........................................................................ [ 72%] 371s ........................................................................ [ 72%] 371s ........................................................................ [ 73%] 371s ........................................................................ [ 73%] 371s ........................................................................ [ 74%] 371s ........................................................................ [ 74%] 371s ........................................................................ [ 75%] 371s ........................................................................ [ 76%] 371s ...........................s.. [ 76%] 373s tests/test_newsunpack.py ............. [ 76%] 383s tests/test_newswrapper.py ........ [ 76%] 383s tests/test_notifier.py .. [ 76%] 384s tests/test_nzbparser.py .x [ 76%] 384s tests/test_nzbstuff.py ................................................. [ 76%] 385s .. [ 76%] 385s tests/test_par2file.py .. [ 76%] 385s tests/test_postproc.py ................................................. [ 77%] 385s ........................................................................ [ 77%] 385s ........................................................................ [ 78%] 386s ........................................................................ [ 78%] 387s ............................. [ 79%] 387s tests/test_rss.py ..... [ 79%] 387s tests/test_sorting.py .................................................. [ 79%] 387s ...sssssssssssssssssssssssssss.......................................... [ 80%] 388s ........................................................................ [ 80%] 388s ........................................................................ [ 81%] 389s ........................................................................ [ 81%] 390s ........................................................................ [ 82%] 391s ........................................................................ [ 82%] 392s ........................................................................ [ 83%] 393s ........................................................................ [ 84%] 393s ........................................................................ [ 84%] 394s ........................................................................ [ 85%] 395s ........................................................................ [ 85%] 396s ................................................s....................... [ 86%] 396s ........................................................................ [ 86%] 396s ........................................................................ [ 87%] 396s ........................................................................ [ 87%] 396s ........................................................................ [ 88%] 396s ........................................................................ [ 89%] 397s ........................................................................ [ 89%] 398s ........................................................................ [ 90%] 399s ........................................................................ [ 90%] 400s ........................................................................ [ 91%] 401s ........................................................................ [ 91%] 401s ........................................................................ [ 92%] 403s ........................................................................ [ 92%] 403s ........................................................................ [ 93%] 404s ........................................................................ [ 94%] 405s ........................................................................ [ 94%] 406s ........................................................................ [ 95%] 407s ........................................................................ [ 95%] 408s ........................................................................ [ 96%] 409s ........................................................................ [ 96%] 410s ........................................................................ [ 97%] 411s ........................................................................ [ 97%] 411s ........................................................................ [ 98%] 412s ........................................................................ [ 98%] 413s ........................................................................ [ 99%] 414s ............................. [ 99%] 414s tests/test_urlgrabber.py ..127.0.0.1 - - [09/Feb/2026 05:23:36] "GET / HTTP/1.1" 200 9358 414s ..127.0.0.1 - - [09/Feb/2026 05:23:36] "GET /status/242 HTTP/1.1" 242 0 414s ...127.0.0.1 - - [09/Feb/2026 05:23:36] "GET /basic-auth/%EC%9C%A0%EC%A6%88%EB%84%B7/%D9%8E%E0%B8%AD%E0%B8%B1%E0%B8%81%E0%B8%A9%E0%B8%A3%E0%B9%84%E0%B8%97%E0%B8%A2 HTTP/1.1" 200 60 414s ............... [ 99%] 416s tests/test_utils/test_cert_gen.py .... [ 99%] 417s tests/test_utils/test_diskspeed.py .... [ 99%] 418s tests/test_utils/test_pystone.py . [100%] 418s 418s ==================================== ERRORS ==================================== 418s ________________ ERROR at setup of TestShowLogging.test_showlog ________________ 418s 418s self = 418s method = 'POST', url = '/session' 418s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 418s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 418s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 418s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 418s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 418s preload_content = True, decode_content = True, response_kw = {} 418s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 418s destination_scheme = None, conn = None, release_this_conn = True 418s http_tunnel_required = False, err = None, clean_exit = False 418s 418s def urlopen( # type: ignore[override] 418s self, 418s method: str, 418s url: str, 418s body: _TYPE_BODY | None = None, 418s headers: typing.Mapping[str, str] | None = None, 418s retries: Retry | bool | int | None = None, 418s redirect: bool = True, 418s assert_same_host: bool = True, 418s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 418s pool_timeout: int | None = None, 418s release_conn: bool | None = None, 418s chunked: bool = False, 418s body_pos: _TYPE_BODY_POSITION | None = None, 418s preload_content: bool = True, 418s decode_content: bool = True, 418s **response_kw: typing.Any, 418s ) -> BaseHTTPResponse: 418s """ 418s Get a connection from the pool and perform an HTTP request. This is the 418s lowest level call for making a request, so you'll need to specify all 418s the raw details. 418s 418s .. note:: 418s 418s More commonly, it's appropriate to use a convenience method 418s such as :meth:`request`. 418s 418s .. note:: 418s 418s `release_conn` will only behave as expected if 418s `preload_content=False` because we want to make 418s `preload_content=False` the default behaviour someday soon without 418s breaking backwards compatibility. 418s 418s :param method: 418s HTTP request method (such as GET, POST, PUT, etc.) 418s 418s :param url: 418s The URL to perform the request on. 418s 418s :param body: 418s Data to send in the request body, either :class:`str`, :class:`bytes`, 418s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 418s 418s :param headers: 418s Dictionary of custom headers to send, such as User-Agent, 418s If-None-Match, etc. If None, pool headers are used. If provided, 418s these headers completely replace any pool-specific headers. 418s 418s :param retries: 418s Configure the number of retries to allow before raising a 418s :class:`~urllib3.exceptions.MaxRetryError` exception. 418s 418s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 418s :class:`~urllib3.util.retry.Retry` object for fine-grained control 418s over different types of retries. 418s Pass an integer number to retry connection errors that many times, 418s but no other types of errors. Pass zero to never retry. 418s 418s If ``False``, then retries are disabled and any exception is raised 418s immediately. Also, instead of raising a MaxRetryError on redirects, 418s the redirect response will be returned. 418s 418s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 418s 418s :param redirect: 418s If True, automatically handle redirects (status codes 301, 302, 418s 303, 307, 308). Each redirect counts as a retry. Disabling retries 418s will disable redirect, too. 418s 418s :param assert_same_host: 418s If ``True``, will make sure that the host of the pool requests is 418s consistent else will raise HostChangedError. When ``False``, you can 418s use the pool on an HTTP proxy and request foreign hosts. 418s 418s :param timeout: 418s If specified, overrides the default timeout for this one 418s request. It may be a float (in seconds) or an instance of 418s :class:`urllib3.util.Timeout`. 418s 418s :param pool_timeout: 418s If set and the pool is set to block=True, then this method will 418s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 418s connection is available within the time period. 418s 418s :param bool preload_content: 418s If True, the response's body will be preloaded into memory. 418s 418s :param bool decode_content: 418s If True, will attempt to decode the body based on the 418s 'content-encoding' header. 418s 418s :param release_conn: 418s If False, then the urlopen call will not release the connection 418s back into the pool once a response is received (but will release if 418s you read the entire contents of the response such as when 418s `preload_content=True`). This is useful if you're not preloading 418s the response's content immediately. You will need to call 418s ``r.release_conn()`` on the response ``r`` to return the connection 418s back into the pool. If None, it takes the value of ``preload_content`` 418s which defaults to ``True``. 418s 418s :param bool chunked: 418s If True, urllib3 will send the body using chunked transfer 418s encoding. Otherwise, urllib3 will send the body using the standard 418s content-length form. Defaults to False. 418s 418s :param int body_pos: 418s Position to seek to in file-like body in the event of a retry or 418s redirect. Typically this won't need to be set because urllib3 will 418s auto-populate the value when needed. 418s """ 418s parsed_url = parse_url(url) 418s destination_scheme = parsed_url.scheme 418s 418s if headers is None: 418s headers = self.headers 418s 418s if not isinstance(retries, Retry): 418s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 418s 418s if release_conn is None: 418s release_conn = preload_content 418s 418s # Check host 418s if assert_same_host and not self.is_same_host(url): 418s raise HostChangedError(self, url, retries) 418s 418s # Ensure that the URL we're connecting to is properly encoded 418s if url.startswith("/"): 418s url = to_str(_encode_target(url)) 418s else: 418s url = to_str(parsed_url.url) 418s 418s conn = None 418s 418s # Track whether `conn` needs to be released before 418s # returning/raising/recursing. Update this variable if necessary, and 418s # leave `release_conn` constant throughout the function. That way, if 418s # the function recurses, the original value of `release_conn` will be 418s # passed down into the recursive call, and its value will be respected. 418s # 418s # See issue #651 [1] for details. 418s # 418s # [1] 418s release_this_conn = release_conn 418s 418s http_tunnel_required = connection_requires_http_tunnel( 418s self.proxy, self.proxy_config, destination_scheme 418s ) 418s 418s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 418s # have to copy the headers dict so we can safely change it without those 418s # changes being reflected in anyone else's copy. 418s if not http_tunnel_required: 418s headers = headers.copy() # type: ignore[attr-defined] 418s headers.update(self.proxy_headers) # type: ignore[union-attr] 418s 418s # Must keep the exception bound to a separate variable or else Python 3 418s # complains about UnboundLocalError. 418s err = None 418s 418s # Keep track of whether we cleanly exited the except block. This 418s # ensures we do proper cleanup in finally. 418s clean_exit = False 418s 418s # Rewind body position, if needed. Record current position 418s # for future rewinds in the event of a redirect/retry. 418s body_pos = set_file_position(body, body_pos) 418s 418s try: 418s # Request a connection from the queue. 418s timeout_obj = self._get_timeout(timeout) 418s conn = self._get_conn(timeout=pool_timeout) 418s 418s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 418s 418s # Is this a closed/new connection that requires CONNECT tunnelling? 418s if self.proxy is not None and http_tunnel_required and conn.is_closed: 418s try: 418s self._prepare_proxy(conn) 418s except (BaseSSLError, OSError, SocketTimeout) as e: 418s self._raise_timeout( 418s err=e, url=self.proxy.url, timeout_value=conn.timeout 418s ) 418s raise 418s 418s # If we're going to release the connection in ``finally:``, then 418s # the response doesn't need to know about the connection. Otherwise 418s # it will also try to release it and we'll have a double-release 418s # mess. 418s response_conn = conn if not release_conn else None 418s 418s # Make the request on the HTTPConnection object 418s > response = self._make_request( 418s conn, 418s method, 418s url, 418s timeout=timeout_obj, 418s body=body, 418s headers=headers, 418s chunked=chunked, 418s retries=retries, 418s response_conn=response_conn, 418s preload_content=preload_content, 418s decode_content=decode_content, 418s **response_kw, 418s ) 418s 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s 418s During handling of the above exception, another exception occurred: 418s 418s self = 418s browser_name = 'chrome', vendor_prefix = 'goog' 418s options = 418s service = 418s keep_alive = True 418s 418s def __init__( 418s self, 418s browser_name: str = None, 418s vendor_prefix: str = None, 418s options: ArgOptions = ArgOptions(), 418s service: Service = None, 418s keep_alive: bool = True, 418s ) -> None: 418s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 418s service and then creates new WebDriver instance of ChromiumDriver. 418s 418s :Args: 418s - browser_name - Browser name used when matching capabilities. 418s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 418s - options - this takes an instance of ChromiumOptions 418s - service - Service object for handling the browser driver if you need to pass extra details 418s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 418s """ 418s self.service = service 418s 418s finder = DriverFinder(self.service, options) 418s if finder.get_browser_path(): 418s options.binary_location = finder.get_browser_path() 418s options.browser_version = None 418s 418s self.service.path = finder.get_driver_path() 418s self.service.start() 418s 418s executor = ChromiumRemoteConnection( 418s remote_server_addr=self.service.service_url, 418s browser_name=browser_name, 418s vendor_prefix=vendor_prefix, 418s keep_alive=keep_alive, 418s ignore_proxy=options._ignore_local_proxy, 418s ) 418s 418s try: 418s > super().__init__(command_executor=executor, options=options) 418s 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 418s self.start_session(capabilities) 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 418s response = self.execute(Command.NEW_SESSION, caps)["value"] 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 418s response = self.command_executor.execute(driver_command, params) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 418s return self._request(command_info[0], url, body=data) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 418s response = self._conn.request(method, url, body=body, headers=headers) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 418s return self.request_encode_body( 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 418s return self.urlopen(method, url, **extra_kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 418s response = conn.urlopen(method, u.request_uri, **kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 418s retries = retries.increment( 418s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 418s raise reraise(type(error), error, _stacktrace) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 418s raise value.with_traceback(tb) 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 418s response = self._make_request( 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 418s 418s /usr/lib/python3.14/socket.py:725: ProtocolError 418s 418s During handling of the above exception, another exception occurred: 418s 418s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 418s ^^^^^^^^^^^^^^^^^^^^^^^^ 418s ) 418s 418s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:728: in pytest_fixture_setup 418s return (yield) 418s ^^^^^ 418s tests/conftest.py:148: in run_sabnews_and_selenium 418s driver = webdriver.Chrome(options=driver_options, service=service) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 418s super().__init__( 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 418s self.quit() 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 418s self.service.stop() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 418s self.send_remote_shutdown_command() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 418s request.urlopen(f"{self.service_url}/shutdown") 418s /usr/lib/python3.14/urllib/request.py:187: in urlopen 418s return opener.open(url, data, timeout) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:487: in open 418s response = self._open(req, data) 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:504: in _open 418s result = self._call_chain(self.handle_open, protocol, protocol + 418s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 418s result = func(*args) 418s ^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1350: in http_open 418s return self.do_open(http.client.HTTPConnection, req) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1325: in do_open 418s r = h.getresponse() 418s ^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s ______________ ERROR at setup of TestDaemonizing.test_daemonizing ______________ 418s 418s self = 418s method = 'POST', url = '/session' 418s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 418s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 418s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 418s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 418s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 418s preload_content = True, decode_content = True, response_kw = {} 418s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 418s destination_scheme = None, conn = None, release_this_conn = True 418s http_tunnel_required = False, err = None, clean_exit = False 418s 418s def urlopen( # type: ignore[override] 418s self, 418s method: str, 418s url: str, 418s body: _TYPE_BODY | None = None, 418s headers: typing.Mapping[str, str] | None = None, 418s retries: Retry | bool | int | None = None, 418s redirect: bool = True, 418s assert_same_host: bool = True, 418s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 418s pool_timeout: int | None = None, 418s release_conn: bool | None = None, 418s chunked: bool = False, 418s body_pos: _TYPE_BODY_POSITION | None = None, 418s preload_content: bool = True, 418s decode_content: bool = True, 418s **response_kw: typing.Any, 418s ) -> BaseHTTPResponse: 418s """ 418s Get a connection from the pool and perform an HTTP request. This is the 418s lowest level call for making a request, so you'll need to specify all 418s the raw details. 418s 418s .. note:: 418s 418s More commonly, it's appropriate to use a convenience method 418s such as :meth:`request`. 418s 418s .. note:: 418s 418s `release_conn` will only behave as expected if 418s `preload_content=False` because we want to make 418s `preload_content=False` the default behaviour someday soon without 418s breaking backwards compatibility. 418s 418s :param method: 418s HTTP request method (such as GET, POST, PUT, etc.) 418s 418s :param url: 418s The URL to perform the request on. 418s 418s :param body: 418s Data to send in the request body, either :class:`str`, :class:`bytes`, 418s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 418s 418s :param headers: 418s Dictionary of custom headers to send, such as User-Agent, 418s If-None-Match, etc. If None, pool headers are used. If provided, 418s these headers completely replace any pool-specific headers. 418s 418s :param retries: 418s Configure the number of retries to allow before raising a 418s :class:`~urllib3.exceptions.MaxRetryError` exception. 418s 418s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 418s :class:`~urllib3.util.retry.Retry` object for fine-grained control 418s over different types of retries. 418s Pass an integer number to retry connection errors that many times, 418s but no other types of errors. Pass zero to never retry. 418s 418s If ``False``, then retries are disabled and any exception is raised 418s immediately. Also, instead of raising a MaxRetryError on redirects, 418s the redirect response will be returned. 418s 418s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 418s 418s :param redirect: 418s If True, automatically handle redirects (status codes 301, 302, 418s 303, 307, 308). Each redirect counts as a retry. Disabling retries 418s will disable redirect, too. 418s 418s :param assert_same_host: 418s If ``True``, will make sure that the host of the pool requests is 418s consistent else will raise HostChangedError. When ``False``, you can 418s use the pool on an HTTP proxy and request foreign hosts. 418s 418s :param timeout: 418s If specified, overrides the default timeout for this one 418s request. It may be a float (in seconds) or an instance of 418s :class:`urllib3.util.Timeout`. 418s 418s :param pool_timeout: 418s If set and the pool is set to block=True, then this method will 418s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 418s connection is available within the time period. 418s 418s :param bool preload_content: 418s If True, the response's body will be preloaded into memory. 418s 418s :param bool decode_content: 418s If True, will attempt to decode the body based on the 418s 'content-encoding' header. 418s 418s :param release_conn: 418s If False, then the urlopen call will not release the connection 418s back into the pool once a response is received (but will release if 418s you read the entire contents of the response such as when 418s `preload_content=True`). This is useful if you're not preloading 418s the response's content immediately. You will need to call 418s ``r.release_conn()`` on the response ``r`` to return the connection 418s back into the pool. If None, it takes the value of ``preload_content`` 418s which defaults to ``True``. 418s 418s :param bool chunked: 418s If True, urllib3 will send the body using chunked transfer 418s encoding. Otherwise, urllib3 will send the body using the standard 418s content-length form. Defaults to False. 418s 418s :param int body_pos: 418s Position to seek to in file-like body in the event of a retry or 418s redirect. Typically this won't need to be set because urllib3 will 418s auto-populate the value when needed. 418s """ 418s parsed_url = parse_url(url) 418s destination_scheme = parsed_url.scheme 418s 418s if headers is None: 418s headers = self.headers 418s 418s if not isinstance(retries, Retry): 418s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 418s 418s if release_conn is None: 418s release_conn = preload_content 418s 418s # Check host 418s if assert_same_host and not self.is_same_host(url): 418s raise HostChangedError(self, url, retries) 418s 418s # Ensure that the URL we're connecting to is properly encoded 418s if url.startswith("/"): 418s url = to_str(_encode_target(url)) 418s else: 418s url = to_str(parsed_url.url) 418s 418s conn = None 418s 418s # Track whether `conn` needs to be released before 418s # returning/raising/recursing. Update this variable if necessary, and 418s # leave `release_conn` constant throughout the function. That way, if 418s # the function recurses, the original value of `release_conn` will be 418s # passed down into the recursive call, and its value will be respected. 418s # 418s # See issue #651 [1] for details. 418s # 418s # [1] 418s release_this_conn = release_conn 418s 418s http_tunnel_required = connection_requires_http_tunnel( 418s self.proxy, self.proxy_config, destination_scheme 418s ) 418s 418s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 418s # have to copy the headers dict so we can safely change it without those 418s # changes being reflected in anyone else's copy. 418s if not http_tunnel_required: 418s headers = headers.copy() # type: ignore[attr-defined] 418s headers.update(self.proxy_headers) # type: ignore[union-attr] 418s 418s # Must keep the exception bound to a separate variable or else Python 3 418s # complains about UnboundLocalError. 418s err = None 418s 418s # Keep track of whether we cleanly exited the except block. This 418s # ensures we do proper cleanup in finally. 418s clean_exit = False 418s 418s # Rewind body position, if needed. Record current position 418s # for future rewinds in the event of a redirect/retry. 418s body_pos = set_file_position(body, body_pos) 418s 418s try: 418s # Request a connection from the queue. 418s timeout_obj = self._get_timeout(timeout) 418s conn = self._get_conn(timeout=pool_timeout) 418s 418s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 418s 418s # Is this a closed/new connection that requires CONNECT tunnelling? 418s if self.proxy is not None and http_tunnel_required and conn.is_closed: 418s try: 418s self._prepare_proxy(conn) 418s except (BaseSSLError, OSError, SocketTimeout) as e: 418s self._raise_timeout( 418s err=e, url=self.proxy.url, timeout_value=conn.timeout 418s ) 418s raise 418s 418s # If we're going to release the connection in ``finally:``, then 418s # the response doesn't need to know about the connection. Otherwise 418s # it will also try to release it and we'll have a double-release 418s # mess. 418s response_conn = conn if not release_conn else None 418s 418s # Make the request on the HTTPConnection object 418s > response = self._make_request( 418s conn, 418s method, 418s url, 418s timeout=timeout_obj, 418s body=body, 418s headers=headers, 418s chunked=chunked, 418s retries=retries, 418s response_conn=response_conn, 418s preload_content=preload_content, 418s decode_content=decode_content, 418s **response_kw, 418s ) 418s 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s 418s During handling of the above exception, another exception occurred: 418s 418s self = 418s browser_name = 'chrome', vendor_prefix = 'goog' 418s options = 418s service = 418s keep_alive = True 418s 418s def __init__( 418s self, 418s browser_name: str = None, 418s vendor_prefix: str = None, 418s options: ArgOptions = ArgOptions(), 418s service: Service = None, 418s keep_alive: bool = True, 418s ) -> None: 418s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 418s service and then creates new WebDriver instance of ChromiumDriver. 418s 418s :Args: 418s - browser_name - Browser name used when matching capabilities. 418s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 418s - options - this takes an instance of ChromiumOptions 418s - service - Service object for handling the browser driver if you need to pass extra details 418s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 418s """ 418s self.service = service 418s 418s finder = DriverFinder(self.service, options) 418s if finder.get_browser_path(): 418s options.binary_location = finder.get_browser_path() 418s options.browser_version = None 418s 418s self.service.path = finder.get_driver_path() 418s self.service.start() 418s 418s executor = ChromiumRemoteConnection( 418s remote_server_addr=self.service.service_url, 418s browser_name=browser_name, 418s vendor_prefix=vendor_prefix, 418s keep_alive=keep_alive, 418s ignore_proxy=options._ignore_local_proxy, 418s ) 418s 418s try: 418s > super().__init__(command_executor=executor, options=options) 418s 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 418s self.start_session(capabilities) 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 418s response = self.execute(Command.NEW_SESSION, caps)["value"] 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 418s response = self.command_executor.execute(driver_command, params) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 418s return self._request(command_info[0], url, body=data) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 418s response = self._conn.request(method, url, body=body, headers=headers) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 418s return self.request_encode_body( 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 418s return self.urlopen(method, url, **extra_kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 418s response = conn.urlopen(method, u.request_uri, **kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 418s retries = retries.increment( 418s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 418s raise reraise(type(error), error, _stacktrace) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 418s raise value.with_traceback(tb) 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 418s response = self._make_request( 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 418s 418s /usr/lib/python3.14/socket.py:725: ProtocolError 418s 418s During handling of the above exception, another exception occurred: 418s 418s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 418s ^^^^^^^^^^^^^^^^^^^^^^^^ 418s ) 418s 418s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s tests/conftest.py:148: in run_sabnews_and_selenium 418s driver = webdriver.Chrome(options=driver_options, service=service) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 418s super().__init__( 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 418s self.quit() 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 418s self.service.stop() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 418s self.send_remote_shutdown_command() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 418s request.urlopen(f"{self.service_url}/shutdown") 418s /usr/lib/python3.14/urllib/request.py:187: in urlopen 418s return opener.open(url, data, timeout) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:487: in open 418s response = self._open(req, data) 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:504: in _open 418s result = self._call_chain(self.handle_open, protocol, protocol + 418s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 418s result = func(*args) 418s ^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1350: in http_open 418s return self.do_open(http.client.HTTPConnection, req) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1325: in do_open 418s r = h.getresponse() 418s ^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s ____ ERROR at setup of TestDownloadSorting.test_sorter_settings_conversion _____ 418s 418s self = 418s method = 'POST', url = '/session' 418s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 418s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 418s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 418s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 418s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 418s preload_content = True, decode_content = True, response_kw = {} 418s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 418s destination_scheme = None, conn = None, release_this_conn = True 418s http_tunnel_required = False, err = None, clean_exit = False 418s 418s def urlopen( # type: ignore[override] 418s self, 418s method: str, 418s url: str, 418s body: _TYPE_BODY | None = None, 418s headers: typing.Mapping[str, str] | None = None, 418s retries: Retry | bool | int | None = None, 418s redirect: bool = True, 418s assert_same_host: bool = True, 418s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 418s pool_timeout: int | None = None, 418s release_conn: bool | None = None, 418s chunked: bool = False, 418s body_pos: _TYPE_BODY_POSITION | None = None, 418s preload_content: bool = True, 418s decode_content: bool = True, 418s **response_kw: typing.Any, 418s ) -> BaseHTTPResponse: 418s """ 418s Get a connection from the pool and perform an HTTP request. This is the 418s lowest level call for making a request, so you'll need to specify all 418s the raw details. 418s 418s .. note:: 418s 418s More commonly, it's appropriate to use a convenience method 418s such as :meth:`request`. 418s 418s .. note:: 418s 418s `release_conn` will only behave as expected if 418s `preload_content=False` because we want to make 418s `preload_content=False` the default behaviour someday soon without 418s breaking backwards compatibility. 418s 418s :param method: 418s HTTP request method (such as GET, POST, PUT, etc.) 418s 418s :param url: 418s The URL to perform the request on. 418s 418s :param body: 418s Data to send in the request body, either :class:`str`, :class:`bytes`, 418s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 418s 418s :param headers: 418s Dictionary of custom headers to send, such as User-Agent, 418s If-None-Match, etc. If None, pool headers are used. If provided, 418s these headers completely replace any pool-specific headers. 418s 418s :param retries: 418s Configure the number of retries to allow before raising a 418s :class:`~urllib3.exceptions.MaxRetryError` exception. 418s 418s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 418s :class:`~urllib3.util.retry.Retry` object for fine-grained control 418s over different types of retries. 418s Pass an integer number to retry connection errors that many times, 418s but no other types of errors. Pass zero to never retry. 418s 418s If ``False``, then retries are disabled and any exception is raised 418s immediately. Also, instead of raising a MaxRetryError on redirects, 418s the redirect response will be returned. 418s 418s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 418s 418s :param redirect: 418s If True, automatically handle redirects (status codes 301, 302, 418s 303, 307, 308). Each redirect counts as a retry. Disabling retries 418s will disable redirect, too. 418s 418s :param assert_same_host: 418s If ``True``, will make sure that the host of the pool requests is 418s consistent else will raise HostChangedError. When ``False``, you can 418s use the pool on an HTTP proxy and request foreign hosts. 418s 418s :param timeout: 418s If specified, overrides the default timeout for this one 418s request. It may be a float (in seconds) or an instance of 418s :class:`urllib3.util.Timeout`. 418s 418s :param pool_timeout: 418s If set and the pool is set to block=True, then this method will 418s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 418s connection is available within the time period. 418s 418s :param bool preload_content: 418s If True, the response's body will be preloaded into memory. 418s 418s :param bool decode_content: 418s If True, will attempt to decode the body based on the 418s 'content-encoding' header. 418s 418s :param release_conn: 418s If False, then the urlopen call will not release the connection 418s back into the pool once a response is received (but will release if 418s you read the entire contents of the response such as when 418s `preload_content=True`). This is useful if you're not preloading 418s the response's content immediately. You will need to call 418s ``r.release_conn()`` on the response ``r`` to return the connection 418s back into the pool. If None, it takes the value of ``preload_content`` 418s which defaults to ``True``. 418s 418s :param bool chunked: 418s If True, urllib3 will send the body using chunked transfer 418s encoding. Otherwise, urllib3 will send the body using the standard 418s content-length form. Defaults to False. 418s 418s :param int body_pos: 418s Position to seek to in file-like body in the event of a retry or 418s redirect. Typically this won't need to be set because urllib3 will 418s auto-populate the value when needed. 418s """ 418s parsed_url = parse_url(url) 418s destination_scheme = parsed_url.scheme 418s 418s if headers is None: 418s headers = self.headers 418s 418s if not isinstance(retries, Retry): 418s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 418s 418s if release_conn is None: 418s release_conn = preload_content 418s 418s # Check host 418s if assert_same_host and not self.is_same_host(url): 418s raise HostChangedError(self, url, retries) 418s 418s # Ensure that the URL we're connecting to is properly encoded 418s if url.startswith("/"): 418s url = to_str(_encode_target(url)) 418s else: 418s url = to_str(parsed_url.url) 418s 418s conn = None 418s 418s # Track whether `conn` needs to be released before 418s # returning/raising/recursing. Update this variable if necessary, and 418s # leave `release_conn` constant throughout the function. That way, if 418s # the function recurses, the original value of `release_conn` will be 418s # passed down into the recursive call, and its value will be respected. 418s # 418s # See issue #651 [1] for details. 418s # 418s # [1] 418s release_this_conn = release_conn 418s 418s http_tunnel_required = connection_requires_http_tunnel( 418s self.proxy, self.proxy_config, destination_scheme 418s ) 418s 418s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 418s # have to copy the headers dict so we can safely change it without those 418s # changes being reflected in anyone else's copy. 418s if not http_tunnel_required: 418s headers = headers.copy() # type: ignore[attr-defined] 418s headers.update(self.proxy_headers) # type: ignore[union-attr] 418s 418s # Must keep the exception bound to a separate variable or else Python 3 418s # complains about UnboundLocalError. 418s err = None 418s 418s # Keep track of whether we cleanly exited the except block. This 418s # ensures we do proper cleanup in finally. 418s clean_exit = False 418s 418s # Rewind body position, if needed. Record current position 418s # for future rewinds in the event of a redirect/retry. 418s body_pos = set_file_position(body, body_pos) 418s 418s try: 418s # Request a connection from the queue. 418s timeout_obj = self._get_timeout(timeout) 418s conn = self._get_conn(timeout=pool_timeout) 418s 418s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 418s 418s # Is this a closed/new connection that requires CONNECT tunnelling? 418s if self.proxy is not None and http_tunnel_required and conn.is_closed: 418s try: 418s self._prepare_proxy(conn) 418s except (BaseSSLError, OSError, SocketTimeout) as e: 418s self._raise_timeout( 418s err=e, url=self.proxy.url, timeout_value=conn.timeout 418s ) 418s raise 418s 418s # If we're going to release the connection in ``finally:``, then 418s # the response doesn't need to know about the connection. Otherwise 418s # it will also try to release it and we'll have a double-release 418s # mess. 418s response_conn = conn if not release_conn else None 418s 418s # Make the request on the HTTPConnection object 418s > response = self._make_request( 418s conn, 418s method, 418s url, 418s timeout=timeout_obj, 418s body=body, 418s headers=headers, 418s chunked=chunked, 418s retries=retries, 418s response_conn=response_conn, 418s preload_content=preload_content, 418s decode_content=decode_content, 418s **response_kw, 418s ) 418s 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s 418s During handling of the above exception, another exception occurred: 418s 418s self = 418s browser_name = 'chrome', vendor_prefix = 'goog' 418s options = 418s service = 418s keep_alive = True 418s 418s def __init__( 418s self, 418s browser_name: str = None, 418s vendor_prefix: str = None, 418s options: ArgOptions = ArgOptions(), 418s service: Service = None, 418s keep_alive: bool = True, 418s ) -> None: 418s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 418s service and then creates new WebDriver instance of ChromiumDriver. 418s 418s :Args: 418s - browser_name - Browser name used when matching capabilities. 418s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 418s - options - this takes an instance of ChromiumOptions 418s - service - Service object for handling the browser driver if you need to pass extra details 418s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 418s """ 418s self.service = service 418s 418s finder = DriverFinder(self.service, options) 418s if finder.get_browser_path(): 418s options.binary_location = finder.get_browser_path() 418s options.browser_version = None 418s 418s self.service.path = finder.get_driver_path() 418s self.service.start() 418s 418s executor = ChromiumRemoteConnection( 418s remote_server_addr=self.service.service_url, 418s browser_name=browser_name, 418s vendor_prefix=vendor_prefix, 418s keep_alive=keep_alive, 418s ignore_proxy=options._ignore_local_proxy, 418s ) 418s 418s try: 418s > super().__init__(command_executor=executor, options=options) 418s 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 418s self.start_session(capabilities) 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 418s response = self.execute(Command.NEW_SESSION, caps)["value"] 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 418s response = self.command_executor.execute(driver_command, params) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 418s return self._request(command_info[0], url, body=data) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 418s response = self._conn.request(method, url, body=body, headers=headers) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 418s return self.request_encode_body( 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 418s return self.urlopen(method, url, **extra_kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 418s response = conn.urlopen(method, u.request_uri, **kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 418s retries = retries.increment( 418s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 418s raise reraise(type(error), error, _stacktrace) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 418s raise value.with_traceback(tb) 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 418s response = self._make_request( 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 418s 418s /usr/lib/python3.14/socket.py:725: ProtocolError 418s 418s During handling of the above exception, another exception occurred: 418s 418s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 418s ^^^^^^^^^^^^^^^^^^^^^^^^ 418s ) 418s 418s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s tests/conftest.py:148: in run_sabnews_and_selenium 418s driver = webdriver.Chrome(options=driver_options, service=service) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 418s super().__init__( 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 418s self.quit() 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 418s self.service.stop() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 418s self.send_remote_shutdown_command() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 418s request.urlopen(f"{self.service_url}/shutdown") 418s /usr/lib/python3.14/urllib/request.py:187: in urlopen 418s return opener.open(url, data, timeout) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:487: in open 418s response = self._open(req, data) 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:504: in _open 418s result = self._call_chain(self.handle_open, protocol, protocol + 418s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 418s result = func(*args) 418s ^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1350: in http_open 418s return self.do_open(http.client.HTTPConnection, req) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1325: in do_open 418s r = h.getresponse() 418s ^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s _ ERROR at setup of TestDownloadSorting.test_download_season_sorting[sea_sort_s01_4k_uhd-SABnzbd-result0] _ 418s 418s self = 418s method = 'POST', url = '/session' 418s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 418s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 418s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 418s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 418s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 418s preload_content = True, decode_content = True, response_kw = {} 418s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 418s destination_scheme = None, conn = None, release_this_conn = True 418s http_tunnel_required = False, err = None, clean_exit = False 418s 418s def urlopen( # type: ignore[override] 418s self, 418s method: str, 418s url: str, 418s body: _TYPE_BODY | None = None, 418s headers: typing.Mapping[str, str] | None = None, 418s retries: Retry | bool | int | None = None, 418s redirect: bool = True, 418s assert_same_host: bool = True, 418s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 418s pool_timeout: int | None = None, 418s release_conn: bool | None = None, 418s chunked: bool = False, 418s body_pos: _TYPE_BODY_POSITION | None = None, 418s preload_content: bool = True, 418s decode_content: bool = True, 418s **response_kw: typing.Any, 418s ) -> BaseHTTPResponse: 418s """ 418s Get a connection from the pool and perform an HTTP request. This is the 418s lowest level call for making a request, so you'll need to specify all 418s the raw details. 418s 418s .. note:: 418s 418s More commonly, it's appropriate to use a convenience method 418s such as :meth:`request`. 418s 418s .. note:: 418s 418s `release_conn` will only behave as expected if 418s `preload_content=False` because we want to make 418s `preload_content=False` the default behaviour someday soon without 418s breaking backwards compatibility. 418s 418s :param method: 418s HTTP request method (such as GET, POST, PUT, etc.) 418s 418s :param url: 418s The URL to perform the request on. 418s 418s :param body: 418s Data to send in the request body, either :class:`str`, :class:`bytes`, 418s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 418s 418s :param headers: 418s Dictionary of custom headers to send, such as User-Agent, 418s If-None-Match, etc. If None, pool headers are used. If provided, 418s these headers completely replace any pool-specific headers. 418s 418s :param retries: 418s Configure the number of retries to allow before raising a 418s :class:`~urllib3.exceptions.MaxRetryError` exception. 418s 418s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 418s :class:`~urllib3.util.retry.Retry` object for fine-grained control 418s over different types of retries. 418s Pass an integer number to retry connection errors that many times, 418s but no other types of errors. Pass zero to never retry. 418s 418s If ``False``, then retries are disabled and any exception is raised 418s immediately. Also, instead of raising a MaxRetryError on redirects, 418s the redirect response will be returned. 418s 418s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 418s 418s :param redirect: 418s If True, automatically handle redirects (status codes 301, 302, 418s 303, 307, 308). Each redirect counts as a retry. Disabling retries 418s will disable redirect, too. 418s 418s :param assert_same_host: 418s If ``True``, will make sure that the host of the pool requests is 418s consistent else will raise HostChangedError. When ``False``, you can 418s use the pool on an HTTP proxy and request foreign hosts. 418s 418s :param timeout: 418s If specified, overrides the default timeout for this one 418s request. It may be a float (in seconds) or an instance of 418s :class:`urllib3.util.Timeout`. 418s 418s :param pool_timeout: 418s If set and the pool is set to block=True, then this method will 418s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 418s connection is available within the time period. 418s 418s :param bool preload_content: 418s If True, the response's body will be preloaded into memory. 418s 418s :param bool decode_content: 418s If True, will attempt to decode the body based on the 418s 'content-encoding' header. 418s 418s :param release_conn: 418s If False, then the urlopen call will not release the connection 418s back into the pool once a response is received (but will release if 418s you read the entire contents of the response such as when 418s `preload_content=True`). This is useful if you're not preloading 418s the response's content immediately. You will need to call 418s ``r.release_conn()`` on the response ``r`` to return the connection 418s back into the pool. If None, it takes the value of ``preload_content`` 418s which defaults to ``True``. 418s 418s :param bool chunked: 418s If True, urllib3 will send the body using chunked transfer 418s encoding. Otherwise, urllib3 will send the body using the standard 418s content-length form. Defaults to False. 418s 418s :param int body_pos: 418s Position to seek to in file-like body in the event of a retry or 418s redirect. Typically this won't need to be set because urllib3 will 418s auto-populate the value when needed. 418s """ 418s parsed_url = parse_url(url) 418s destination_scheme = parsed_url.scheme 418s 418s if headers is None: 418s headers = self.headers 418s 418s if not isinstance(retries, Retry): 418s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 418s 418s if release_conn is None: 418s release_conn = preload_content 418s 418s # Check host 418s if assert_same_host and not self.is_same_host(url): 418s raise HostChangedError(self, url, retries) 418s 418s # Ensure that the URL we're connecting to is properly encoded 418s if url.startswith("/"): 418s url = to_str(_encode_target(url)) 418s else: 418s url = to_str(parsed_url.url) 418s 418s conn = None 418s 418s # Track whether `conn` needs to be released before 418s # returning/raising/recursing. Update this variable if necessary, and 418s # leave `release_conn` constant throughout the function. That way, if 418s # the function recurses, the original value of `release_conn` will be 418s # passed down into the recursive call, and its value will be respected. 418s # 418s # See issue #651 [1] for details. 418s # 418s # [1] 418s release_this_conn = release_conn 418s 418s http_tunnel_required = connection_requires_http_tunnel( 418s self.proxy, self.proxy_config, destination_scheme 418s ) 418s 418s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 418s # have to copy the headers dict so we can safely change it without those 418s # changes being reflected in anyone else's copy. 418s if not http_tunnel_required: 418s headers = headers.copy() # type: ignore[attr-defined] 418s headers.update(self.proxy_headers) # type: ignore[union-attr] 418s 418s # Must keep the exception bound to a separate variable or else Python 3 418s # complains about UnboundLocalError. 418s err = None 418s 418s # Keep track of whether we cleanly exited the except block. This 418s # ensures we do proper cleanup in finally. 418s clean_exit = False 418s 418s # Rewind body position, if needed. Record current position 418s # for future rewinds in the event of a redirect/retry. 418s body_pos = set_file_position(body, body_pos) 418s 418s try: 418s # Request a connection from the queue. 418s timeout_obj = self._get_timeout(timeout) 418s conn = self._get_conn(timeout=pool_timeout) 418s 418s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 418s 418s # Is this a closed/new connection that requires CONNECT tunnelling? 418s if self.proxy is not None and http_tunnel_required and conn.is_closed: 418s try: 418s self._prepare_proxy(conn) 418s except (BaseSSLError, OSError, SocketTimeout) as e: 418s self._raise_timeout( 418s err=e, url=self.proxy.url, timeout_value=conn.timeout 418s ) 418s raise 418s 418s # If we're going to release the connection in ``finally:``, then 418s # the response doesn't need to know about the connection. Otherwise 418s # it will also try to release it and we'll have a double-release 418s # mess. 418s response_conn = conn if not release_conn else None 418s 418s # Make the request on the HTTPConnection object 418s > response = self._make_request( 418s conn, 418s method, 418s url, 418s timeout=timeout_obj, 418s body=body, 418s headers=headers, 418s chunked=chunked, 418s retries=retries, 418s response_conn=response_conn, 418s preload_content=preload_content, 418s decode_content=decode_content, 418s **response_kw, 418s ) 418s 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s 418s During handling of the above exception, another exception occurred: 418s 418s self = 418s browser_name = 'chrome', vendor_prefix = 'goog' 418s options = 418s service = 418s keep_alive = True 418s 418s def __init__( 418s self, 418s browser_name: str = None, 418s vendor_prefix: str = None, 418s options: ArgOptions = ArgOptions(), 418s service: Service = None, 418s keep_alive: bool = True, 418s ) -> None: 418s """Creates a new WebDriver instance of the ChromiumDriver. Starts the 418s service and then creates new WebDriver instance of ChromiumDriver. 418s 418s :Args: 418s - browser_name - Browser name used when matching capabilities. 418s - vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands. 418s - options - this takes an instance of ChromiumOptions 418s - service - Service object for handling the browser driver if you need to pass extra details 418s - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive. 418s """ 418s self.service = service 418s 418s finder = DriverFinder(self.service, options) 418s if finder.get_browser_path(): 418s options.binary_location = finder.get_browser_path() 418s options.browser_version = None 418s 418s self.service.path = finder.get_driver_path() 418s self.service.start() 418s 418s executor = ChromiumRemoteConnection( 418s remote_server_addr=self.service.service_url, 418s browser_name=browser_name, 418s vendor_prefix=vendor_prefix, 418s keep_alive=keep_alive, 418s ignore_proxy=options._ignore_local_proxy, 418s ) 418s 418s try: 418s > super().__init__(command_executor=executor, options=options) 418s 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:66: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:212: in __init__ 418s self.start_session(capabilities) 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:299: in start_session 418s response = self.execute(Command.NEW_SESSION, caps)["value"] 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py:352: in execute 418s response = self.command_executor.execute(driver_command, params) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:306: in execute 418s return self._request(command_info[0], url, body=data) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/remote/remote_connection.py:326: in _request 418s response = self._conn.request(method, url, body=body, headers=headers) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:143: in request 418s return self.request_encode_body( 418s /usr/lib/python3/dist-packages/urllib3/_request_methods.py:278: in request_encode_body 418s return self.urlopen(method, url, **extra_kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/poolmanager.py:459: in urlopen 418s response = conn.urlopen(method, u.request_uri, **kw) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen 418s retries = retries.increment( 418s /usr/lib/python3/dist-packages/urllib3/util/retry.py:474: in increment 418s raise reraise(type(error), error, _stacktrace) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/util/util.py:38: in reraise 418s raise value.with_traceback(tb) 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: in urlopen 418s response = self._make_request( 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 418s 418s /usr/lib/python3.14/socket.py:725: ProtocolError 418s 418s During handling of the above exception, another exception occurred: 418s 418s > lambda: ihook(item=item, **kwds), when=when, reraise=reraise 418s ^^^^^^^^^^^^^^^^^^^^^^^^ 418s ) 418s 418s /usr/lib/python3/dist-packages/flaky/flaky_pytest_plugin.py:146: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s tests/conftest.py:148: in run_sabnews_and_selenium 418s driver = webdriver.Chrome(options=driver_options, service=service) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/selenium/webdriver/chrome/webdriver.py:45: in __init__ 418s super().__init__( 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:68: in __init__ 418s self.quit() 418s /usr/lib/python3/dist-packages/selenium/webdriver/chromium/webdriver.py:193: in quit 418s self.service.stop() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:146: in stop 418s self.send_remote_shutdown_command() 418s /usr/lib/python3/dist-packages/selenium/webdriver/common/service.py:126: in send_remote_shutdown_command 418s request.urlopen(f"{self.service_url}/shutdown") 418s /usr/lib/python3.14/urllib/request.py:187: in urlopen 418s return opener.open(url, data, timeout) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:487: in open 418s response = self._open(req, data) 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:504: in _open 418s result = self._call_chain(self.handle_open, protocol, protocol + 418s /usr/lib/python3.14/urllib/request.py:464: in _call_chain 418s result = func(*args) 418s ^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1350: in http_open 418s return self.do_open(http.client.HTTPConnection, req) 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/urllib/request.py:1325: in do_open 418s r = h.getresponse() 418s ^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s _ ERROR at setup of TestDownloadSorting.test_download_season_sorting[sea_sort_s02_4k_uhd-SABnzbd-result1] _ 418s 418s self = 418s method = 'POST', url = '/session' 418s body = '{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "pageLoadStrategy": "normal", "browserVersion": "127", "goog:chromeOptions": {"extensions": [], "args": ["--headless", "--no-sandbox", "--single-process"]}}}}' 418s headers = HTTPHeaderDict({'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'selenium/4.31.1 (python linux)', 'Connection': 'keep-alive'}) 418s retries = Retry(total=3, connect=None, read=None, redirect=None, status=None) 418s redirect = False, assert_same_host = False, timeout = <_TYPE_DEFAULT.token: -1> 418s pool_timeout = None, release_conn = True, chunked = False, body_pos = None 418s preload_content = True, decode_content = True, response_kw = {} 418s parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/session', query=None, fragment=None) 418s destination_scheme = None, conn = None, release_this_conn = True 418s http_tunnel_required = False, err = None, clean_exit = False 418s 418s def urlopen( # type: ignore[override] 418s self, 418s method: str, 418s url: str, 418s body: _TYPE_BODY | None = None, 418s headers: typing.Mapping[str, str] | None = None, 418s retries: Retry | bool | int | None = None, 418s redirect: bool = True, 418s assert_same_host: bool = True, 418s timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, 418s pool_timeout: int | None = None, 418s release_conn: bool | None = None, 418s chunked: bool = False, 418s body_pos: _TYPE_BODY_POSITION | None = None, 418s preload_content: bool = True, 418s decode_content: bool = True, 418s **response_kw: typing.Any, 418s ) -> BaseHTTPResponse: 418s """ 418s Get a connection from the pool and perform an HTTP request. This is the 418s lowest level call for making a request, so you'll need to specify all 418s the raw details. 418s 418s .. note:: 418s 418s More commonly, it's appropriate to use a convenience method 418s such as :meth:`request`. 418s 418s .. note:: 418s 418s `release_conn` will only behave as expected if 418s `preload_content=False` because we want to make 418s `preload_content=False` the default behaviour someday soon without 418s breaking backwards compatibility. 418s 418s :param method: 418s HTTP request method (such as GET, POST, PUT, etc.) 418s 418s :param url: 418s The URL to perform the request on. 418s 418s :param body: 418s Data to send in the request body, either :class:`str`, :class:`bytes`, 418s an iterable of :class:`str`/:class:`bytes`, or a file-like object. 418s 418s :param headers: 418s Dictionary of custom headers to send, such as User-Agent, 418s If-None-Match, etc. If None, pool headers are used. If provided, 418s these headers completely replace any pool-specific headers. 418s 418s :param retries: 418s Configure the number of retries to allow before raising a 418s :class:`~urllib3.exceptions.MaxRetryError` exception. 418s 418s If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a 418s :class:`~urllib3.util.retry.Retry` object for fine-grained control 418s over different types of retries. 418s Pass an integer number to retry connection errors that many times, 418s but no other types of errors. Pass zero to never retry. 418s 418s If ``False``, then retries are disabled and any exception is raised 418s immediately. Also, instead of raising a MaxRetryError on redirects, 418s the redirect response will be returned. 418s 418s :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. 418s 418s :param redirect: 418s If True, automatically handle redirects (status codes 301, 302, 418s 303, 307, 308). Each redirect counts as a retry. Disabling retries 418s will disable redirect, too. 418s 418s :param assert_same_host: 418s If ``True``, will make sure that the host of the pool requests is 418s consistent else will raise HostChangedError. When ``False``, you can 418s use the pool on an HTTP proxy and request foreign hosts. 418s 418s :param timeout: 418s If specified, overrides the default timeout for this one 418s request. It may be a float (in seconds) or an instance of 418s :class:`urllib3.util.Timeout`. 418s 418s :param pool_timeout: 418s If set and the pool is set to block=True, then this method will 418s block for ``pool_timeout`` seconds and raise EmptyPoolError if no 418s connection is available within the time period. 418s 418s :param bool preload_content: 418s If True, the response's body will be preloaded into memory. 418s 418s :param bool decode_content: 418s If True, will attempt to decode the body based on the 418s 'content-encoding' header. 418s 418s :param release_conn: 418s If False, then the urlopen call will not release the connection 418s back into the pool once a response is received (but will release if 418s you read the entire contents of the response such as when 418s `preload_content=True`). This is useful if you're not preloading 418s the response's content immediately. You will need to call 418s ``r.release_conn()`` on the response ``r`` to return the connection 418s back into the pool. If None, it takes the value of ``preload_content`` 418s which defaults to ``True``. 418s 418s :param bool chunked: 418s If True, urllib3 will send the body using chunked transfer 418s encoding. Otherwise, urllib3 will send the body using the standard 418s content-length form. Defaults to False. 418s 418s :param int body_pos: 418s Position to seek to in file-like body in the event of a retry or 418s redirect. Typically this won't need to be set because urllib3 will 418s auto-populate the value when needed. 418s """ 418s parsed_url = parse_url(url) 418s destination_scheme = parsed_url.scheme 418s 418s if headers is None: 418s headers = self.headers 418s 418s if not isinstance(retries, Retry): 418s retries = Retry.from_int(retries, redirect=redirect, default=self.retries) 418s 418s if release_conn is None: 418s release_conn = preload_content 418s 418s # Check host 418s if assert_same_host and not self.is_same_host(url): 418s raise HostChangedError(self, url, retries) 418s 418s # Ensure that the URL we're connecting to is properly encoded 418s if url.startswith("/"): 418s url = to_str(_encode_target(url)) 418s else: 418s url = to_str(parsed_url.url) 418s 418s conn = None 418s 418s # Track whether `conn` needs to be released before 418s # returning/raising/recursing. Update this variable if necessary, and 418s # leave `release_conn` constant throughout the function. That way, if 418s # the function recurses, the original value of `release_conn` will be 418s # passed down into the recursive call, and its value will be respected. 418s # 418s # See issue #651 [1] for details. 418s # 418s # [1] 418s release_this_conn = release_conn 418s 418s http_tunnel_required = connection_requires_http_tunnel( 418s self.proxy, self.proxy_config, destination_scheme 418s ) 418s 418s # Merge the proxy headers. Only done when not using HTTP CONNECT. We 418s # have to copy the headers dict so we can safely change it without those 418s # changes being reflected in anyone else's copy. 418s if not http_tunnel_required: 418s headers = headers.copy() # type: ignore[attr-defined] 418s headers.update(self.proxy_headers) # type: ignore[union-attr] 418s 418s # Must keep the exception bound to a separate variable or else Python 3 418s # complains about UnboundLocalError. 418s err = None 418s 418s # Keep track of whether we cleanly exited the except block. This 418s # ensures we do proper cleanup in finally. 418s clean_exit = False 418s 418s # Rewind body position, if needed. Record current position 418s # for future rewinds in the event of a redirect/retry. 418s body_pos = set_file_position(body, body_pos) 418s 418s try: 418s # Request a connection from the queue. 418s timeout_obj = self._get_timeout(timeout) 418s conn = self._get_conn(timeout=pool_timeout) 418s 418s conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] 418s 418s # Is this a closed/new connection that requires CONNECT tunnelling? 418s if self.proxy is not None and http_tunnel_required and conn.is_closed: 418s try: 418s self._prepare_proxy(conn) 418s except (BaseSSLError, OSError, SocketTimeout) as e: 418s self._raise_timeout( 418s err=e, url=self.proxy.url, timeout_value=conn.timeout 418s ) 418s raise 418s 418s # If we're going to release the connection in ``finally:``, then 418s # the response doesn't need to know about the connection. Otherwise 418s # it will also try to release it and we'll have a double-release 418s # mess. 418s response_conn = conn if not release_conn else None 418s 418s # Make the request on the HTTPConnection object 418s > response = self._make_request( 418s conn, 418s method, 418s url, 418s timeout=timeout_obj, 418s body=body, 418s headers=headers, 418s chunked=chunked, 418s retries=retries, 418s response_conn=response_conn, 418s preload_content=preload_content, 418s decode_content=decode_content, 418s **response_kw, 418s ) 418s 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s /usr/lib/python3/dist-packages/urllib3/connectionpool.py:534: in _make_request 418s response = conn.getresponse() 418s ^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3/dist-packages/urllib3/connection.py:565: in getresponse 418s httplib_response = super().getresponse() 418s ^^^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:1450: in getresponse 418s response.begin() 418s /usr/lib/python3.14/http/client.py:336: in begin 418s version, status, reason = self._read_status() 418s ^^^^^^^^^^^^^^^^^^^ 418s /usr/lib/python3.14/http/client.py:297: in _read_status 418s line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") 418s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 418s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418s 418s self = 418s b = 418s 418s def readinto(self, b): 418s """Read up to len(b) bytes into the writable buffer *b* and return 418s the number of bytes read. If the socket is non-blocking and no bytes 418s are available, None is returned. 418s 418s If *b* is non-empty, a 0 return value indicates that the connection 418s was shutdown at the other end. 418s """ 418s self._checkClosed() 418s self._checkReadable() 418s if self._timeout_occurred: 418s raise OSError("cannot read from timed out object") 418s try: 418s > return self._sock.recv_into(b) 418s ^^^^^^^^^^^^^^^^^^^^^^^ 418s E ConnectionResetError: [Errno 104] Connection reset by peer 418s 418s /usr/lib/python3.14/socket.py:725: ConnectionResetError 418s 418s During handling of the above exception, another exception occurred: 418s 418s self = 418s browser_name = 'chrome', vendor_prefix = 'goog' 418s options = 418s service = 418s keep_alive = True 418s 418s def __init__( 418s self, 418s browser_name: str = None, 418s 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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 /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 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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 /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 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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 /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 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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 /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 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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 /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 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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 /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 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 /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 urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) 419s 419s /usr/lib/python3.14/socket.py:725: 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.02s (0:02:05) = 421s autopkgtest [05:23:43]: test upstream-tests: -----------------------] 422s autopkgtest [05:23:44]: test upstream-tests: - - - - - - - - - - results - - - - - - - - - - 422s upstream-tests FAIL non-zero exit status 1 422s autopkgtest [05:23:44]: @@@@@@@@@@@@@@@@@@@@ summary 422s basic-runs PASS (superficial) 422s upstream-tests FAIL non-zero exit status 1