Warning: Permanently added '2620:52:3:1:dead:beef:cafe:c1c8' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/8427022-fedora-rawhide-x86_64 --chroot fedora-rawhide-x86_64 Version: 1.2 PID: 50056 Logging PID: 50057 Task: {'allow_user_ssh': False, 'appstream': False, 'background': True, 'bootstrap': 'off', 'build_id': 8427022, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'fedora_review': False, 'git_hash': 'ecff49c648126833b5cb753210de137f10888413', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/@python/python3.14/python-valkey', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'python-valkey', 'package_version': '6.0.2-1', 'project_dirname': 'python3.14', 'project_name': 'python3.14', 'project_owner': '@python', 'repo_priority': 9, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/@python/python3.14/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': 9}, {'baseurl': 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/', 'id': 'http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch', 'name': 'Additional repo http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch'}], 'sandbox': '@python/python3.14--ksurma', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': 0, 'submitter': 'ksurma', 'tags': [], 'task_id': '8427022-fedora-rawhide-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/@python/python3.14/python-valkey /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/@python/python3.14/python-valkey', '/var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey'... Running: git checkout ecff49c648126833b5cb753210de137f10888413 -- cmd: ['git', 'checkout', 'ecff49c648126833b5cb753210de137f10888413', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey rc: 0 stdout: stderr: Note: switching to 'ecff49c648126833b5cb753210de137f10888413'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at ecff49c automatic import of python-valkey Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources INFO: Downloading python-valkey-6.0.2.tar.gz INFO: Reading stdout from command: curl --help all INFO: Calling: curl -H Pragma: -o python-valkey-6.0.2.tar.gz --location --connect-timeout 60 --retry 3 --retry-delay 10 --remote-time --show-error --fail --retry-all-errors https://copr-dist-git.fedorainfracloud.org/repo/pkgs/@python/python3.14/python-valkey/python-valkey-6.0.2.tar.gz/md5/c0aec2d9c82ee55182af26f15c30a529/python-valkey-6.0.2.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4695k 100 4695k 0 0 21.6M 0 --:--:-- --:--:-- --:--:-- 21.6M INFO: Reading stdout from command: md5sum python-valkey-6.0.2.tar.gz /usr/bin/tail: /var/lib/copr-rpmbuild/main.log: file truncated Running (timeout=18000): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey/python-valkey.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1734696984.943096 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 5.9 starting (python version = 3.13.0, NVR = mock-5.9-1.fc41), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey/python-valkey.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1734696984.943096 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey/python-valkey.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 5.9 INFO: Mock Version: 5.9 Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1734696984.943096/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf5 detected and used (fallback) INFO: Buildroot is handled by package management from host and used with --installroot: rpm-4.20.0-1.fc41.x86_64 rpm-sequoia-1.7.0-2.fc41.x86_64 python3-dnf-4.22.0-1.fc41.noarch python3-dnf-plugins-core-4.10.0-1.fc41.noarch dnf5-5.2.8.1-2.fc41.x86_64 dnf5-plugins-5.2.8.1-2.fc41.x86_64 Start: installing minimal buildroot with dnf5 Updating and loading repositories: fedora 100% | 1.0 MiB/s | 28.1 KiB | 00m00s Copr repository 100% | 29.0 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 72.2 KiB/s | 3.8 KiB | 00m00s Copr repository 100% | 36.8 MiB/s | 7.6 MiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing group/module packages: bash x86_64 5.2.37-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.2 MiB bzip2 x86_64 1.0.8-19.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 95.7 KiB coreutils x86_64 9.5-11.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.4 MiB cpio x86_64 2.15-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 MiB diffutils x86_64 3.10-8.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB fedora-release-common noarch 42-0.11 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 19.8 KiB findutils x86_64 1:4.10.0-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB gawk x86_64 5.3.0-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB glibc-minimal-langpack x86_64 2.40.9000-24.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B grep x86_64 3.11-9.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB gzip x86_64 1.13-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 389.0 KiB info x86_64 7.1.1-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 361.8 KiB patch x86_64 2.7.6-25.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 266.7 KiB redhat-rpm-config noarch 296-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 186.6 KiB rpm-build x86_64 4.20.0-3.fc42 copr_base 185.8 KiB sed x86_64 4.9-3.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 861.5 KiB shadow-utils x86_64 2:4.17.0~rc1-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.1 MiB tar x86_64 2:1.35-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.9 MiB unzip x86_64 6.0-65.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 398.2 KiB util-linux x86_64 2.40.2-8.fc42 copr_base 3.5 MiB which x86_64 2.21-42.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 80.2 KiB xz x86_64 1:5.6.3-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 MiB Installing dependencies: add-determinism x86_64 0.4.3-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.4 MiB alternatives x86_64 1.31-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 64.8 KiB ansible-srpm-macros noarch 1-16.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 35.7 KiB audit-libs x86_64 4.0.2-1.fc42 copr_base 327.3 KiB authselect x86_64 1.5.0-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 157.5 KiB authselect-libs x86_64 1.5.0-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 822.2 KiB basesystem noarch 11-21.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B binutils x86_64 2.43.50-9.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25.8 MiB build-reproducibility-srpm-macros noarch 0.4.3-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 735.0 B bzip2-libs x86_64 1.0.8-19.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 80.7 KiB ca-certificates noarch 2024.2.69_v8.0.401-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.6 MiB coreutils-common x86_64 9.5-11.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.2 MiB cracklib x86_64 2.9.11-6.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 238.9 KiB crypto-policies noarch 20241128-1.gitbb7b0b0.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 137.3 KiB curl x86_64 8.11.1-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 452.0 KiB cyrus-sasl-lib x86_64 2.1.28-27.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB debugedit x86_64 5.1-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 200.3 KiB dwz x86_64 0.15-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 299.2 KiB ed x86_64 1.20.2-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 146.9 KiB efi-srpm-macros noarch 5-13.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40.2 KiB elfutils x86_64 0.192-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.6 MiB elfutils-debuginfod-client x86_64 0.192-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 81.4 KiB elfutils-default-yama-scope noarch 0.192-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 KiB elfutils-libelf x86_64 0.192-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 MiB elfutils-libs x86_64 0.192-7.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 662.9 KiB fedora-gpg-keys noarch 42-0.3 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 126.4 KiB fedora-release noarch 42-0.11 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B fedora-release-identity-basic noarch 42-0.11 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 719.0 B fedora-repos noarch 42-0.3 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.9 KiB fedora-repos-rawhide noarch 42-0.3 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 KiB file x86_64 5.45-8.fc42 copr_base 102.2 KiB file-libs x86_64 5.45-8.fc42 copr_base 9.9 MiB filesystem x86_64 3.18-29.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 106.0 B fonts-srpm-macros noarch 1:2.0.5-17.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 55.8 KiB forge-srpm-macros noarch 0.4.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38.9 KiB fpc-srpm-macros noarch 1.3-13.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 144.0 B gdb-minimal x86_64 15.2-6.fc42 copr_base 12.7 MiB gdbm x86_64 1:1.23-7.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 460.9 KiB gdbm-libs x86_64 1:1.23-7.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 121.9 KiB ghc-srpm-macros noarch 1.9.2-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 779.0 B glibc x86_64 2.40.9000-24.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.7 MiB glibc-common x86_64 2.40.9000-24.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 MiB glibc-gconv-extra x86_64 2.40.9000-24.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.0 MiB gmp x86_64 1:6.3.0-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 811.4 KiB gnat-srpm-macros noarch 6-6.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 KiB go-srpm-macros noarch 3.6.0-5.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60.8 KiB jansson x86_64 2.14-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 93.1 KiB json-c x86_64 0.18-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83.3 KiB kernel-srpm-macros noarch 1.0-24.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB keyutils-libs x86_64 1.6.3-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 54.4 KiB krb5-libs x86_64 1.21.3-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB libacl x86_64 2.3.2-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40.0 KiB libarchive x86_64 3.7.7-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 932.3 KiB libattr x86_64 2.5.2-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28.5 KiB libblkid x86_64 2.40.2-8.fc42 copr_base 257.2 KiB libbrotli x86_64 1.1.0-5.fc42 copr_base 836.4 KiB libcap x86_64 2.71-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 210.8 KiB libcap-ng x86_64 0.8.5-3.fc42 copr_base 70.8 KiB libcom_err x86_64 1.47.1-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67.2 KiB libcurl x86_64 8.11.1-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 817.3 KiB libeconf x86_64 0.7.5-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 66.7 KiB libevent x86_64 2.1.12-14.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 895.7 KiB libfdisk x86_64 2.40.2-8.fc42 copr_base 368.4 KiB libffi x86_64 3.4.6-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 86.4 KiB libgcc x86_64 14.2.1-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 270.6 KiB libgomp x86_64 14.2.1-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 519.8 KiB libidn2 x86_64 2.3.7-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 329.1 KiB libmount x86_64 2.40.2-8.fc42 copr_base 352.8 KiB libnghttp2 x86_64 1.64.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 174.5 KiB libnsl2 x86_64 2.0.1-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 57.9 KiB libpkgconf x86_64 2.3.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 78.2 KiB libpsl x86_64 0.21.5-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 80.5 KiB libpwquality x86_64 1.4.5-11.fc42 copr_base 417.0 KiB libselinux x86_64 3.8-0.rc3.1.fc42 copr_base 191.6 KiB libsemanage x86_64 3.8-0.rc3.1.fc42 copr_base 305.3 KiB libsepol x86_64 3.8-0.rc3.1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 812.3 KiB libsmartcols x86_64 2.40.2-8.fc42 copr_base 176.2 KiB libssh x86_64 0.11.1-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 569.6 KiB libssh-config noarch 0.11.1-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 277.0 B libstdc++ x86_64 14.2.1-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.8 MiB libtasn1 x86_64 4.19.0-9.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 175.7 KiB libtirpc x86_64 1.3.6-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 205.5 KiB libtool-ltdl x86_64 2.5.4-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 68.1 KiB libunistring x86_64 1.1-8.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB libuuid x86_64 2.40.2-8.fc42 copr_base 39.9 KiB libverto x86_64 0.3.2-9.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 29.5 KiB libxcrypt x86_64 4.4.36-11.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 271.4 KiB libxml2 x86_64 2.12.8-2.fc42 copr_base 1.7 MiB libzstd x86_64 1.5.6-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 795.9 KiB lua-libs x86_64 5.4.7-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 285.0 KiB lua-srpm-macros noarch 1-14.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 KiB lz4-libs x86_64 1.10.0-1.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 145.5 KiB mpfr x86_64 4.2.1-5.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 832.1 KiB ncurses-base noarch 6.5-2.20240629.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 326.3 KiB ncurses-libs x86_64 6.5-2.20240629.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 975.2 KiB ocaml-srpm-macros noarch 10-3.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB openblas-srpm-macros noarch 2-18.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 112.0 B openldap x86_64 2.6.8-6.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 647.4 KiB openssl-libs x86_64 1:3.2.2-8.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.8 MiB p11-kit x86_64 0.25.5-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 MiB p11-kit-trust x86_64 0.25.5-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 403.8 KiB package-notes-srpm-macros noarch 0.5-12.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 KiB pam x86_64 1.7.0-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 MiB pam-libs x86_64 1.7.0-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 139.4 KiB pcre2 x86_64 10.44-1.fc41.1 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 653.5 KiB pcre2-syntax noarch 10.44-1.fc41.1 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 251.6 KiB perl-srpm-macros noarch 1-56.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 861.0 B pkgconf x86_64 2.3.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 88.6 KiB pkgconf-m4 noarch 2.3.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14.4 KiB pkgconf-pkg-config x86_64 2.3.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 989.0 B popt x86_64 1.19-7.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 136.9 KiB publicsuffix-list-dafsa noarch 20240107-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67.5 KiB pyproject-srpm-macros noarch 1.16.3-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.9 KiB python-srpm-macros noarch 3.14-3.fc42 copr_base 51.0 KiB qt5-srpm-macros noarch 5.15.15-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 500.0 B qt6-srpm-macros noarch 6.8.1-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 456.0 B readline x86_64 8.2-11.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 493.1 KiB rpm x86_64 4.20.0-3.fc42 copr_base 3.1 MiB rpm-build-libs x86_64 4.20.0-3.fc42 copr_base 204.1 KiB rpm-libs x86_64 4.20.0-3.fc42 copr_base 710.4 KiB rpm-sequoia x86_64 1.7.0-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.3 MiB rust-srpm-macros noarch 26.3-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.8 KiB setup noarch 2.15.0-5.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 720.7 KiB sqlite-libs x86_64 3.47.2-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.4 MiB systemd-libs x86_64 257-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.2 MiB util-linux-core x86_64 2.40.2-8.fc42 copr_base 1.5 MiB xxhash-libs x86_64 0.8.2-4.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 88.4 KiB xz-libs x86_64 1:5.6.3-2.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 218.4 KiB zig-srpm-macros noarch 1-3.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 KiB zip x86_64 3.0-42.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 695.9 KiB zlib-ng-compat x86_64 2.2.2-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 134.0 KiB zstd x86_64 1.5.6-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 MiB Installing groups: Buildsystem building group Transaction Summary: Installing: 154 packages Total size of inbound packages is 51 MiB. Need to download 0 B. After this operation, 178 MiB extra will be used (install 178 MiB, remove 0 B). [1/1] tar-2:1.35-4.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [1/1] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/2] bzip2-0:1.0.8-19.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [2/2] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/3] redhat-rpm-config-0:296-1.fc42.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [3/3] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/4] rpm-build-0:4.20.0-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [4/4] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/5] unzip-0:6.0-65.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [5/5] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/6] cpio-0:2.15-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [6/6] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/7] which-0:2.21-42.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [7/7] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/8] bash-0:5.2.37-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [8/8] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/9] coreutils-0:9.5-11.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [9/9] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/10] grep-0:3.11-9.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [10/10] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/11] patch-0:2.7.6-25.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [11/11] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/12] sed-0:4.9-3.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [12/12] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/13] shadow-utils-2:4.17.0~rc1-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [13/13] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/14] util-linux-0:2.40.2-8.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [14/14] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/15] diffutils-0:3.10-8.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [15/15] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/16] fedora-release-common-0:42-0.11 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [16/16] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/17] findutils-1:4.10.0-4.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [17/17] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/18] gawk-0:5.3.0-4.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [18/18] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/19] glibc-minimal-langpack-0:2.40.9 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [19/19] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/20] gzip-0:1.13-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [20/20] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/21] info-0:7.1.1-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [21/21] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/22] xz-1:5.6.3-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [22/22] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/23] rpm-0:4.20.0-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [23/23] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/24] rpm-libs-0:4.20.0-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [24/24] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/25] rpm-build-libs-0:4.20.0-3.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [25/25] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/26] audit-libs-0:4.0.2-1.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [26/26] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/27] authselect-libs-0:1.5.0-8.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [27/27] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/28] glibc-0:2.40.9000-24.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [28/28] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/29] libblkid-0:2.40.2-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [29/29] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/30] libcap-ng-0:0.8.5-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [30/30] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/31] libfdisk-0:2.40.2-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [31/31] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/32] libmount-0:2.40.2-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [32/32] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/33] libselinux-0:3.8-0.rc3.1.fc42.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [33/33] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/34] libsmartcols-0:2.40.2-8.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [34/34] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/35] libuuid-0:2.40.2-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [35/35] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/36] ncurses-libs-0:6.5-2.20240629.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [36/36] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/37] pam-0:1.7.0-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [37/37] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/38] pam-libs-0:1.7.0-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [38/38] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/39] readline-0:8.2-11.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [39/39] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/40] systemd-libs-0:257-1.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [40/40] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/41] util-linux-core-0:2.40.2-8.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [41/41] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/42] zlib-ng-compat-0:2.2.2-1.fc42.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [42/42] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/43] bzip2-libs-0:1.0.8-19.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [43/43] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/44] libacl-0:2.3.2-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [44/44] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/45] libcap-0:2.71-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [45/45] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/46] libzstd-0:1.5.6-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [46/46] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/47] lua-libs-0:5.4.7-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [47/47] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/48] popt-0:1.19-7.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [48/48] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/49] rpm-sequoia-0:1.7.0-3.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [49/49] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/50] sqlite-libs-0:3.47.2-1.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [50/50] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/51] xz-libs-1:5.6.3-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [51/51] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/52] elfutils-libelf-0:0.192-7.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [52/52] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/53] elfutils-libs-0:0.192-7.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [53/53] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/54] file-libs-0:5.45-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [54/54] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/55] libgcc-0:14.2.1-6.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [55/55] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/56] libgomp-0:14.2.1-6.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [56/56] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/57] binutils-0:2.43.50-9.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [57/57] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/58] debugedit-0:5.1-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [58/58] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/59] elfutils-0:0.192-7.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [59/59] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/60] file-0:5.45-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [60/60] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/61] libarchive-0:3.7.7-1.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [61/61] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/62] pkgconf-pkg-config-0:2.3.0-1.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [62/62] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/63] zstd-0:1.5.6-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [63/63] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/64] curl-0:8.11.1-2.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [64/64] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/65] libsepol-0:3.8-0.rc3.1.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [65/65] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/66] pcre2-0:10.44-1.fc41.1.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [66/66] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/67] libstdc++-0:14.2.1-6.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [67/67] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/68] lz4-libs-0:1.10.0-1.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [68/68] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/69] libattr-0:2.5.2-4.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [69/69] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/70] libeconf-0:0.7.5-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [70/70] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/71] libsemanage-0:3.8-0.rc3.1.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [71/71] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/72] libxcrypt-0:4.4.36-11.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [72/72] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/73] setup-0:2.15.0-5.fc41.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [73/73] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/74] openssl-libs-1:3.2.2-8.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [74/74] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/75] glibc-gconv-extra-0:2.40.9000-2 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [75/75] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/76] ansible-srpm-macros-0:1-16.fc41 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [76/76] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/77] build-reproducibility-srpm-macr 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [77/77] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/78] dwz-0:0.15-8.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [78/78] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/79] efi-srpm-macros-0:5-13.fc42.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [79/79] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/80] fonts-srpm-macros-1:2.0.5-17.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [80/80] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/81] forge-srpm-macros-0:0.4.0-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [81/81] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/82] fpc-srpm-macros-0:1.3-13.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [82/82] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/83] ghc-srpm-macros-0:1.9.2-1.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [83/83] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/84] gnat-srpm-macros-0:6-6.fc41.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [84/84] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/85] go-srpm-macros-0:3.6.0-5.fc42.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [85/85] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/86] kernel-srpm-macros-0:1.0-24.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [86/86] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/87] lua-srpm-macros-0:1-14.fc41.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [87/87] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/88] ocaml-srpm-macros-0:10-3.fc41.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [88/88] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/89] openblas-srpm-macros-0:2-18.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [89/89] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/90] package-notes-srpm-macros-0:0.5 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [90/90] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/91] perl-srpm-macros-0:1-56.fc41.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [91/91] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/92] pyproject-srpm-macros-0:1.16.3- 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [92/92] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/93] python-srpm-macros-0:3.14-3.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [93/93] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/94] qt5-srpm-macros-0:5.15.15-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [94/94] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/95] qt6-srpm-macros-0:6.8.1-4.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [95/95] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/96] rust-srpm-macros-0:26.3-3.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [96/96] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/97] zig-srpm-macros-0:1-3.fc41.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [97/97] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/98] zip-0:3.0-42.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [98/98] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/99] pkgconf-0:2.3.0-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [99/99] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/100] pkgconf-m4-0:2.3.0-1.fc42.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [100/100] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/101] libpkgconf-0:2.3.0-1.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [101/101] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/102] pcre2-syntax-0:10.44-1.fc41.1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [102/102] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/103] ed-0:1.20.2-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [103/103] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/104] authselect-0:1.5.0-8.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [104/104] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/105] gdbm-1:1.23-7.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [105/105] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/106] gdbm-libs-1:1.23-7.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [106/106] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/107] libnsl2-0:2.0.1-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [107/107] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/108] libpwquality-0:1.4.5-11.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [108/108] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/109] libtirpc-0:1.3.6-1.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [109/109] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/110] ca-certificates-0:2024.2.69_v 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [110/110] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/111] crypto-policies-0:20241128-1. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [111/111] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/112] ncurses-base-0:6.5-2.20240629 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [112/112] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/113] krb5-libs-0:1.21.3-3.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [113/113] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/114] libcom_err-0:1.47.1-6.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [114/114] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/115] libxml2-0:2.12.8-2.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [115/115] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/116] keyutils-libs-0:1.6.3-4.fc41. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [116/116] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/117] libverto-0:0.3.2-9.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [117/117] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/118] glibc-common-0:2.40.9000-24.f 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [118/118] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/119] basesystem-0:11-21.fc41.noarc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [119/119] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/120] filesystem-0:3.18-29.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [120/120] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/121] gmp-1:6.3.0-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [121/121] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/122] mpfr-0:4.2.1-5.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [122/122] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/123] fedora-repos-0:42-0.3.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [123/123] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/124] elfutils-default-yama-scope-0 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [124/124] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/125] elfutils-debuginfod-client-0: 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [125/125] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/126] coreutils-common-0:9.5-11.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [126/126] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/127] libffi-0:3.4.6-3.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [127/127] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/128] p11-kit-0:0.25.5-4.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [128/128] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/129] p11-kit-trust-0:0.25.5-4.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [129/129] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/130] add-determinism-0:0.4.3-1.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [130/130] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/131] alternatives-0:1.31-1.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [131/131] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/132] jansson-0:2.14-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [132/132] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/133] cracklib-0:2.9.11-6.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [133/133] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/134] libtasn1-0:4.19.0-9.fc41.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [134/134] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/135] fedora-gpg-keys-0:42-0.3.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [135/135] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/136] fedora-repos-rawhide-0:42-0.3 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [136/136] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/137] json-c-0:0.18-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [137/137] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/138] gdb-minimal-0:15.2-6.fc42.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [138/138] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/139] xxhash-libs-0:0.8.2-4.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [139/139] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/140] fedora-release-0:42-0.11.noar 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [140/140] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/141] fedora-release-identity-basic 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [141/141] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/142] libcurl-0:8.11.1-2.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [142/142] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/143] libbrotli-0:1.1.0-5.fc42.x86_ 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [143/143] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/144] libidn2-0:2.3.7-2.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [144/144] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/145] libnghttp2-0:1.64.0-1.fc42.x8 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [145/145] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/146] libpsl-0:0.21.5-4.fc41.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [146/146] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/147] libssh-0:0.11.1-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [147/147] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/148] openldap-0:2.6.8-6.fc42.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [148/148] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/149] cyrus-sasl-lib-0:2.1.28-27.fc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [149/149] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/150] libevent-0:2.1.12-14.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [150/150] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/151] libtool-ltdl-0:2.5.4-1.fc42.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [151/151] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/152] libssh-config-0:0.11.1-1.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [152/152] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/153] libunistring-0:1.1-8.fc41.x86 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [153/153] Total 100% | 0.0 B/s | 0.0 B | 00m00s [ 1/154] publicsuffix-list-dafsa-0:202 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [154/154] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction [ 1/156] Verify package files 100% | 773.0 B/s | 154.0 B | 00m00s >>> Running pre-transaction scriptlet: filesystem-0:3.18-29.fc42.x86_64 >>> Finished pre-transaction scriptlet: filesystem-0:3.18-29.fc42.x86_64 >>> [RPM] /var/lib/mock/fedora-rawhide-x86_64-1734696984.943096/root/var/cache/d [ 2/156] Prepare transaction 100% | 1.7 KiB/s | 154.0 B | 00m00s [ 3/156] Installing libgcc-0:14.2.1-6. 100% | 132.9 MiB/s | 272.3 KiB | 00m00s [ 4/156] Installing publicsuffix-list- 100% | 66.7 MiB/s | 68.3 KiB | 00m00s [ 5/156] Installing libssh-config-0:0. 100% | 0.0 B/s | 816.0 B | 00m00s [ 6/156] Installing fedora-release-ide 100% | 953.1 KiB/s | 976.0 B | 00m00s [ 7/156] Installing fedora-gpg-keys-0: 100% | 18.7 MiB/s | 172.2 KiB | 00m00s [ 8/156] Installing fedora-repos-rawhi 100% | 0.0 B/s | 2.4 KiB | 00m00s [ 9/156] Installing fedora-repos-0:42- 100% | 5.6 MiB/s | 5.7 KiB | 00m00s [ 10/156] Installing fedora-release-com 100% | 11.8 MiB/s | 24.1 KiB | 00m00s [ 11/156] Installing fedora-release-0:4 100% | 0.0 B/s | 124.0 B | 00m00s [ 12/156] Installing setup-0:2.15.0-5.f 100% | 50.6 MiB/s | 726.1 KiB | 00m00s >>> [RPM] /etc/hosts created as /etc/hosts.rpmnew [ 13/156] Installing filesystem-0:3.18- 100% | 1.5 MiB/s | 212.6 KiB | 00m00s [ 14/156] Installing basesystem-0:11-21 100% | 0.0 B/s | 124.0 B | 00m00s [ 15/156] Installing coreutils-common-0 100% | 228.4 MiB/s | 11.2 MiB | 00m00s [ 16/156] Installing ncurses-base-0:6.5 100% | 34.3 MiB/s | 351.7 KiB | 00m00s [ 17/156] Installing glibc-minimal-lang 100% | 121.1 KiB/s | 124.0 B | 00m00s [ 18/156] Installing ncurses-libs-0:6.5 100% | 137.0 MiB/s | 981.8 KiB | 00m00s [ 19/156] Installing glibc-0:2.40.9000- 100% | 222.4 MiB/s | 6.7 MiB | 00m00s [ 20/156] Installing bash-0:5.2.37-1.fc 100% | 272.3 MiB/s | 8.2 MiB | 00m00s [ 21/156] Installing glibc-common-0:2.4 100% | 115.7 MiB/s | 1.0 MiB | 00m00s [ 22/156] Installing glibc-gconv-extra- 100% | 149.6 MiB/s | 8.1 MiB | 00m00s [ 23/156] Installing zlib-ng-compat-0:2 100% | 131.7 MiB/s | 134.9 KiB | 00m00s [ 24/156] Installing bzip2-libs-0:1.0.8 100% | 79.9 MiB/s | 81.8 KiB | 00m00s [ 25/156] Installing xz-libs-1:5.6.3-2. 100% | 107.2 MiB/s | 219.5 KiB | 00m00s [ 26/156] Installing libuuid-0:2.40.2-8 100% | 39.9 MiB/s | 40.9 KiB | 00m00s [ 27/156] Installing readline-0:8.2-11. 100% | 161.2 MiB/s | 495.3 KiB | 00m00s [ 28/156] Installing popt-0:1.19-7.fc41 100% | 28.0 MiB/s | 143.5 KiB | 00m00s [ 29/156] Installing libblkid-0:2.40.2- 100% | 126.1 MiB/s | 258.2 KiB | 00m00s [ 30/156] Installing libzstd-0:1.5.6-2. 100% | 259.5 MiB/s | 797.2 KiB | 00m00s [ 31/156] Installing elfutils-libelf-0: 100% | 291.7 MiB/s | 1.2 MiB | 00m00s [ 32/156] Installing libstdc++-0:14.2.1 100% | 276.0 MiB/s | 2.8 MiB | 00m00s [ 33/156] Installing libattr-0:2.5.2-4. 100% | 28.8 MiB/s | 29.5 KiB | 00m00s [ 34/156] Installing libacl-0:2.3.2-2.f 100% | 39.8 MiB/s | 40.7 KiB | 00m00s [ 35/156] Installing libxcrypt-0:4.4.36 100% | 133.8 MiB/s | 274.1 KiB | 00m00s [ 36/156] Installing gmp-1:6.3.0-2.fc41 100% | 264.9 MiB/s | 813.7 KiB | 00m00s [ 37/156] Installing libeconf-0:0.7.5-1 100% | 66.8 MiB/s | 68.4 KiB | 00m00s [ 38/156] Installing gdbm-libs-1:1.23-7 100% | 120.7 MiB/s | 123.6 KiB | 00m00s [ 39/156] Installing mpfr-0:4.2.1-5.fc4 100% | 203.5 MiB/s | 833.7 KiB | 00m00s [ 40/156] Installing gawk-0:5.3.0-4.fc4 100% | 157.5 MiB/s | 1.7 MiB | 00m00s [ 41/156] Installing dwz-0:0.15-8.fc42. 100% | 146.8 MiB/s | 300.6 KiB | 00m00s [ 42/156] Installing unzip-0:6.0-65.fc4 100% | 130.8 MiB/s | 401.7 KiB | 00m00s [ 43/156] Installing file-libs-0:5.45-8 100% | 496.8 MiB/s | 9.9 MiB | 00m00s [ 44/156] Installing file-0:5.45-8.fc42 100% | 7.8 MiB/s | 103.7 KiB | 00m00s [ 45/156] Installing crypto-policies-0: 100% | 13.3 MiB/s | 163.7 KiB | 00m00s [ 46/156] Installing libcap-ng-0:0.8.5- 100% | 71.0 MiB/s | 72.7 KiB | 00m00s [ 47/156] Installing audit-libs-0:4.0.2 100% | 160.9 MiB/s | 329.4 KiB | 00m00s [ 48/156] Installing pam-libs-0:1.7.0-3 100% | 69.2 MiB/s | 141.8 KiB | 00m00s [ 49/156] Installing libcap-0:2.71-1.fc 100% | 52.7 MiB/s | 215.8 KiB | 00m00s [ 50/156] Installing systemd-libs-0:257 100% | 222.1 MiB/s | 2.2 MiB | 00m00s [ 51/156] Installing libsmartcols-0:2.4 100% | 173.2 MiB/s | 177.4 KiB | 00m00s [ 52/156] Installing lua-libs-0:5.4.7-1 100% | 139.7 MiB/s | 286.2 KiB | 00m00s [ 53/156] Installing libsepol-0:3.8-0.r 100% | 264.7 MiB/s | 813.3 KiB | 00m00s [ 54/156] Installing lz4-libs-0:1.10.0- 100% | 143.1 MiB/s | 146.6 KiB | 00m00s [ 55/156] Installing libcom_err-0:1.47. 100% | 66.7 MiB/s | 68.3 KiB | 00m00s [ 56/156] Installing libffi-0:3.4.6-3.f 100% | 85.7 MiB/s | 87.8 KiB | 00m00s [ 57/156] Installing alternatives-0:1.3 100% | 64.8 MiB/s | 66.4 KiB | 00m00s [ 58/156] Installing libtasn1-0:4.19.0- 100% | 86.7 MiB/s | 177.5 KiB | 00m00s [ 59/156] Installing p11-kit-0:0.25.5-4 100% | 147.7 MiB/s | 2.2 MiB | 00m00s [ 60/156] Installing libunistring-0:1.1 100% | 288.5 MiB/s | 1.7 MiB | 00m00s [ 61/156] Installing libidn2-0:2.3.7-2. 100% | 65.4 MiB/s | 335.1 KiB | 00m00s [ 62/156] Installing libpsl-0:0.21.5-4. 100% | 79.7 MiB/s | 81.7 KiB | 00m00s [ 63/156] Installing p11-kit-trust-0:0. 100% | 26.4 MiB/s | 405.5 KiB | 00m00s [ 64/156] Installing zstd-0:1.5.6-2.fc4 100% | 241.6 MiB/s | 1.7 MiB | 00m00s [ 65/156] Installing zip-0:3.0-42.fc42. 100% | 170.9 MiB/s | 699.8 KiB | 00m00s [ 66/156] Installing gdbm-1:1.23-7.fc41 100% | 113.7 MiB/s | 465.8 KiB | 00m00s [ 67/156] Installing cyrus-sasl-lib-0:2 100% | 230.6 MiB/s | 2.3 MiB | 00m00s [ 68/156] Installing libfdisk-0:2.40.2- 100% | 180.4 MiB/s | 369.5 KiB | 00m00s [ 69/156] Installing libxml2-0:2.12.8-2 100% | 210.7 MiB/s | 1.7 MiB | 00m00s [ 70/156] Installing bzip2-0:1.0.8-19.f 100% | 48.9 MiB/s | 100.2 KiB | 00m00s [ 71/156] Installing sqlite-libs-0:3.47 100% | 239.0 MiB/s | 1.4 MiB | 00m00s [ 72/156] Installing add-determinism-0: 100% | 270.1 MiB/s | 2.4 MiB | 00m00s [ 73/156] Installing build-reproducibil 100% | 0.0 B/s | 1.0 KiB | 00m00s [ 74/156] Installing ed-0:1.20.2-2.fc41 100% | 72.8 MiB/s | 149.2 KiB | 00m00s [ 75/156] Installing elfutils-default-y 100% | 170.2 KiB/s | 2.0 KiB | 00m00s [ 76/156] Installing elfutils-libs-0:0. 100% | 162.3 MiB/s | 664.7 KiB | 00m00s [ 77/156] Installing cpio-0:2.15-2.fc41 100% | 157.1 MiB/s | 1.1 MiB | 00m00s [ 78/156] Installing diffutils-0:3.10-8 100% | 159.0 MiB/s | 1.6 MiB | 00m00s [ 79/156] Installing libgomp-0:14.2.1-6 100% | 169.7 MiB/s | 521.2 KiB | 00m00s [ 80/156] Installing libpkgconf-0:2.3.0 100% | 77.5 MiB/s | 79.3 KiB | 00m00s [ 81/156] Installing pkgconf-0:2.3.0-1. 100% | 44.5 MiB/s | 91.1 KiB | 00m00s [ 82/156] Installing keyutils-libs-0:1. 100% | 54.5 MiB/s | 55.8 KiB | 00m00s [ 83/156] Installing libverto-0:0.3.2-9 100% | 30.5 MiB/s | 31.3 KiB | 00m00s [ 84/156] Installing jansson-0:2.14-1.f 100% | 92.3 MiB/s | 94.5 KiB | 00m00s [ 85/156] Installing json-c-0:0.18-1.fc 100% | 82.6 MiB/s | 84.6 KiB | 00m00s [ 86/156] Installing xxhash-libs-0:0.8. 100% | 87.7 MiB/s | 89.8 KiB | 00m00s [ 87/156] Installing libbrotli-0:1.1.0- 100% | 204.8 MiB/s | 838.7 KiB | 00m00s [ 88/156] Installing libnghttp2-0:1.64. 100% | 171.5 MiB/s | 175.6 KiB | 00m00s [ 89/156] Installing libtool-ltdl-0:2.5 100% | 67.6 MiB/s | 69.2 KiB | 00m00s [ 90/156] Installing pcre2-syntax-0:10. 100% | 124.1 MiB/s | 254.1 KiB | 00m00s [ 91/156] Installing pcre2-0:10.44-1.fc 100% | 213.2 MiB/s | 654.9 KiB | 00m00s [ 92/156] Installing libselinux-0:3.8-0 100% | 94.2 MiB/s | 192.9 KiB | 00m00s [ 93/156] Installing sed-0:4.9-3.fc41.x 100% | 106.2 MiB/s | 869.7 KiB | 00m00s [ 94/156] Installing grep-0:3.11-9.fc41 100% | 111.5 MiB/s | 1.0 MiB | 00m00s [ 95/156] Installing findutils-1:4.10.0 100% | 168.9 MiB/s | 1.9 MiB | 00m00s [ 96/156] Installing xz-1:5.6.3-2.fc42. 100% | 112.5 MiB/s | 1.2 MiB | 00m00s [ 97/156] Installing libmount-0:2.40.2- 100% | 115.2 MiB/s | 354.0 KiB | 00m00s [ 98/156] Installing util-linux-core-0: 100% | 123.6 MiB/s | 1.5 MiB | 00m00s [ 99/156] Installing openssl-libs-1:3.2 100% | 289.9 MiB/s | 7.8 MiB | 00m00s [100/156] Installing coreutils-0:9.5-11 100% | 138.5 MiB/s | 5.4 MiB | 00m00s [101/156] Installing ca-certificates-0: 100% | 1.2 MiB/s | 2.4 MiB | 00m02s [102/156] Installing krb5-libs-0:1.21.3 100% | 177.3 MiB/s | 2.3 MiB | 00m00s [103/156] Installing libarchive-0:3.7.7 100% | 182.5 MiB/s | 934.2 KiB | 00m00s [104/156] Installing libtirpc-0:1.3.6-1 100% | 101.2 MiB/s | 207.3 KiB | 00m00s [105/156] Installing gzip-0:1.13-2.fc41 100% | 96.3 MiB/s | 394.6 KiB | 00m00s [106/156] Installing authselect-libs-0: 100% | 81.8 MiB/s | 837.2 KiB | 00m00s [107/156] Installing cracklib-0:2.9.11- 100% | 30.6 MiB/s | 250.3 KiB | 00m00s [108/156] Installing libpwquality-0:1.4 100% | 52.4 MiB/s | 429.3 KiB | 00m00s [109/156] Installing libnsl2-0:2.0.1-2. 100% | 57.7 MiB/s | 59.1 KiB | 00m00s [110/156] Installing pam-0:1.7.0-3.fc42 100% | 75.7 MiB/s | 1.9 MiB | 00m00s [111/156] Installing libssh-0:0.11.1-1. 100% | 186.1 MiB/s | 571.7 KiB | 00m00s [112/156] Installing rpm-sequoia-0:1.7. 100% | 258.2 MiB/s | 2.3 MiB | 00m00s [113/156] Installing rpm-libs-0:4.20.0- 100% | 173.8 MiB/s | 711.9 KiB | 00m00s [114/156] Installing rpm-build-libs-0:4 100% | 100.0 MiB/s | 204.9 KiB | 00m00s [115/156] Installing libevent-0:2.1.12- 100% | 175.7 MiB/s | 899.5 KiB | 00m00s [116/156] Installing tar-2:1.35-4.fc41. 100% | 211.3 MiB/s | 3.0 MiB | 00m00s [117/156] Installing patch-0:2.7.6-25.f 100% | 131.0 MiB/s | 268.2 KiB | 00m00s [118/156] Installing libsemanage-0:3.8- 100% | 100.0 MiB/s | 307.1 KiB | 00m00s [119/156] Installing shadow-utils-2:4.1 100% | 121.2 MiB/s | 4.1 MiB | 00m00s [120/156] Installing openldap-0:2.6.8-6 100% | 127.2 MiB/s | 651.2 KiB | 00m00s [121/156] Installing libcurl-0:8.11.1-2 100% | 199.8 MiB/s | 818.4 KiB | 00m00s [122/156] Installing elfutils-debuginfo 100% | 40.9 MiB/s | 83.8 KiB | 00m00s [123/156] Installing binutils-0:2.43.50 100% | 271.6 MiB/s | 25.8 MiB | 00m00s [124/156] Installing elfutils-0:0.192-7 100% | 203.4 MiB/s | 2.6 MiB | 00m00s [125/156] Installing gdb-minimal-0:15.2 100% | 303.0 MiB/s | 12.7 MiB | 00m00s [126/156] Installing debugedit-0:5.1-2. 100% | 66.1 MiB/s | 203.0 KiB | 00m00s [127/156] Installing curl-0:8.11.1-2.fc 100% | 22.2 MiB/s | 454.5 KiB | 00m00s [128/156] Installing rpm-0:4.20.0-3.fc4 100% | 89.2 MiB/s | 2.5 MiB | 00m00s [129/156] Installing efi-srpm-macros-0: 100% | 40.2 MiB/s | 41.2 KiB | 00m00s [130/156] Installing lua-srpm-macros-0: 100% | 0.0 B/s | 1.9 KiB | 00m00s [131/156] Installing zig-srpm-macros-0: 100% | 0.0 B/s | 1.7 KiB | 00m00s [132/156] Installing pkgconf-m4-0:2.3.0 100% | 0.0 B/s | 14.8 KiB | 00m00s [133/156] Installing pkgconf-pkg-config 100% | 1.7 MiB/s | 1.8 KiB | 00m00s [134/156] Installing rust-srpm-macros-0 100% | 0.0 B/s | 5.6 KiB | 00m00s [135/156] Installing qt6-srpm-macros-0: 100% | 0.0 B/s | 732.0 B | 00m00s [136/156] Installing qt5-srpm-macros-0: 100% | 0.0 B/s | 776.0 B | 00m00s [137/156] Installing perl-srpm-macros-0 100% | 0.0 B/s | 1.1 KiB | 00m00s [138/156] Installing package-notes-srpm 100% | 0.0 B/s | 2.0 KiB | 00m00s [139/156] Installing openblas-srpm-macr 100% | 0.0 B/s | 392.0 B | 00m00s [140/156] Installing ocaml-srpm-macros- 100% | 0.0 B/s | 2.2 KiB | 00m00s [141/156] Installing kernel-srpm-macros 100% | 0.0 B/s | 2.3 KiB | 00m00s [142/156] Installing gnat-srpm-macros-0 100% | 0.0 B/s | 1.3 KiB | 00m00s [143/156] Installing ghc-srpm-macros-0: 100% | 0.0 B/s | 1.0 KiB | 00m00s [144/156] Installing fpc-srpm-macros-0: 100% | 0.0 B/s | 420.0 B | 00m00s [145/156] Installing ansible-srpm-macro 100% | 0.0 B/s | 36.2 KiB | 00m00s [146/156] Installing fonts-srpm-macros- 100% | 55.7 MiB/s | 57.0 KiB | 00m00s [147/156] Installing forge-srpm-macros- 100% | 39.3 MiB/s | 40.3 KiB | 00m00s [148/156] Installing go-srpm-macros-0:3 100% | 60.5 MiB/s | 62.0 KiB | 00m00s [149/156] Installing python-srpm-macros 100% | 50.9 MiB/s | 52.2 KiB | 00m00s [150/156] Installing redhat-rpm-config- 100% | 47.2 MiB/s | 193.2 KiB | 00m00s [151/156] Installing rpm-build-0:4.20.0 100% | 47.5 MiB/s | 194.5 KiB | 00m00s [152/156] Installing pyproject-srpm-mac 100% | 1.2 MiB/s | 2.5 KiB | 00m00s [153/156] Installing util-linux-0:2.40. 100% | 83.6 MiB/s | 3.6 MiB | 00m00s [154/156] Installing authselect-0:1.5.0 100% | 39.5 MiB/s | 161.9 KiB | 00m00s [155/156] Installing which-0:2.21-42.fc 100% | 80.5 MiB/s | 82.4 KiB | 00m00s [156/156] Installing info-0:7.1.1-2.fc4 100% | 141.9 KiB/s | 362.2 KiB | 00m03s Warning: skipped OpenPGP checks for 154 packages from repositories: copr_base, http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Finish: installing minimal buildroot with dnf5 Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: add-determinism-0.4.3-1.fc42.x86_64 alternatives-1.31-1.fc42.x86_64 ansible-srpm-macros-1-16.fc41.noarch audit-libs-4.0.2-1.fc42.x86_64 authselect-1.5.0-8.fc42.x86_64 authselect-libs-1.5.0-8.fc42.x86_64 basesystem-11-21.fc41.noarch bash-5.2.37-1.fc42.x86_64 binutils-2.43.50-9.fc42.x86_64 build-reproducibility-srpm-macros-0.4.3-1.fc42.noarch bzip2-1.0.8-19.fc41.x86_64 bzip2-libs-1.0.8-19.fc41.x86_64 ca-certificates-2024.2.69_v8.0.401-3.fc42.noarch coreutils-9.5-11.fc42.x86_64 coreutils-common-9.5-11.fc42.x86_64 cpio-2.15-2.fc41.x86_64 cracklib-2.9.11-6.fc41.x86_64 crypto-policies-20241128-1.gitbb7b0b0.fc42.noarch curl-8.11.1-2.fc42.x86_64 cyrus-sasl-lib-2.1.28-27.fc41.x86_64 debugedit-5.1-2.fc42.x86_64 diffutils-3.10-8.fc41.x86_64 dwz-0.15-8.fc42.x86_64 ed-1.20.2-2.fc41.x86_64 efi-srpm-macros-5-13.fc42.noarch elfutils-0.192-7.fc42.x86_64 elfutils-debuginfod-client-0.192-7.fc42.x86_64 elfutils-default-yama-scope-0.192-7.fc42.noarch elfutils-libelf-0.192-7.fc42.x86_64 elfutils-libs-0.192-7.fc42.x86_64 fedora-gpg-keys-42-0.3.noarch fedora-release-42-0.11.noarch fedora-release-common-42-0.11.noarch fedora-release-identity-basic-42-0.11.noarch fedora-repos-42-0.3.noarch fedora-repos-rawhide-42-0.3.noarch file-5.45-8.fc42.x86_64 file-libs-5.45-8.fc42.x86_64 filesystem-3.18-29.fc42.x86_64 findutils-4.10.0-4.fc41.x86_64 fonts-srpm-macros-2.0.5-17.fc41.noarch forge-srpm-macros-0.4.0-1.fc42.noarch fpc-srpm-macros-1.3-13.fc41.noarch gawk-5.3.0-4.fc41.x86_64 gdb-minimal-15.2-6.fc42.x86_64 gdbm-1.23-7.fc41.x86_64 gdbm-libs-1.23-7.fc41.x86_64 ghc-srpm-macros-1.9.2-1.fc42.noarch glibc-2.40.9000-24.fc42.x86_64 glibc-common-2.40.9000-24.fc42.x86_64 glibc-gconv-extra-2.40.9000-24.fc42.x86_64 glibc-minimal-langpack-2.40.9000-24.fc42.x86_64 gmp-6.3.0-2.fc41.x86_64 gnat-srpm-macros-6-6.fc41.noarch go-srpm-macros-3.6.0-5.fc42.noarch grep-3.11-9.fc41.x86_64 gzip-1.13-2.fc41.x86_64 info-7.1.1-2.fc42.x86_64 jansson-2.14-1.fc42.x86_64 json-c-0.18-1.fc42.x86_64 kernel-srpm-macros-1.0-24.fc41.noarch keyutils-libs-1.6.3-4.fc41.x86_64 krb5-libs-1.21.3-3.fc42.x86_64 libacl-2.3.2-2.fc41.x86_64 libarchive-3.7.7-1.fc42.x86_64 libattr-2.5.2-4.fc41.x86_64 libblkid-2.40.2-8.fc42.x86_64 libbrotli-1.1.0-5.fc42.x86_64 libcap-2.71-1.fc42.x86_64 libcap-ng-0.8.5-3.fc42.x86_64 libcom_err-1.47.1-6.fc42.x86_64 libcurl-8.11.1-2.fc42.x86_64 libeconf-0.7.5-1.fc42.x86_64 libevent-2.1.12-14.fc41.x86_64 libfdisk-2.40.2-8.fc42.x86_64 libffi-3.4.6-3.fc42.x86_64 libgcc-14.2.1-6.fc42.x86_64 libgomp-14.2.1-6.fc42.x86_64 libidn2-2.3.7-2.fc41.x86_64 libmount-2.40.2-8.fc42.x86_64 libnghttp2-1.64.0-1.fc42.x86_64 libnsl2-2.0.1-2.fc41.x86_64 libpkgconf-2.3.0-1.fc42.x86_64 libpsl-0.21.5-4.fc41.x86_64 libpwquality-1.4.5-11.fc42.x86_64 libselinux-3.8-0.rc3.1.fc42.x86_64 libsemanage-3.8-0.rc3.1.fc42.x86_64 libsepol-3.8-0.rc3.1.fc42.x86_64 libsmartcols-2.40.2-8.fc42.x86_64 libssh-0.11.1-1.fc42.x86_64 libssh-config-0.11.1-1.fc42.noarch libstdc++-14.2.1-6.fc42.x86_64 libtasn1-4.19.0-9.fc41.x86_64 libtirpc-1.3.6-1.fc42.x86_64 libtool-ltdl-2.5.4-1.fc42.x86_64 libunistring-1.1-8.fc41.x86_64 libuuid-2.40.2-8.fc42.x86_64 libverto-0.3.2-9.fc41.x86_64 libxcrypt-4.4.36-11.fc42.x86_64 libxml2-2.12.8-2.fc42.x86_64 libzstd-1.5.6-2.fc41.x86_64 lua-libs-5.4.7-1.fc42.x86_64 lua-srpm-macros-1-14.fc41.noarch lz4-libs-1.10.0-1.fc41.x86_64 mpfr-4.2.1-5.fc41.x86_64 ncurses-base-6.5-2.20240629.fc41.noarch ncurses-libs-6.5-2.20240629.fc41.x86_64 ocaml-srpm-macros-10-3.fc41.noarch openblas-srpm-macros-2-18.fc41.noarch openldap-2.6.8-6.fc42.x86_64 openssl-libs-3.2.2-8.fc42.x86_64 p11-kit-0.25.5-4.fc42.x86_64 p11-kit-trust-0.25.5-4.fc42.x86_64 package-notes-srpm-macros-0.5-12.fc41.noarch pam-1.7.0-3.fc42.x86_64 pam-libs-1.7.0-3.fc42.x86_64 patch-2.7.6-25.fc41.x86_64 pcre2-10.44-1.fc41.1.x86_64 pcre2-syntax-10.44-1.fc41.1.noarch perl-srpm-macros-1-56.fc41.noarch pkgconf-2.3.0-1.fc42.x86_64 pkgconf-m4-2.3.0-1.fc42.noarch pkgconf-pkg-config-2.3.0-1.fc42.x86_64 popt-1.19-7.fc41.x86_64 publicsuffix-list-dafsa-20240107-4.fc41.noarch pyproject-srpm-macros-1.16.3-1.fc42.noarch python-srpm-macros-3.14-3.fc42.noarch qt5-srpm-macros-5.15.15-1.fc42.noarch qt6-srpm-macros-6.8.1-4.fc42.noarch readline-8.2-11.fc42.x86_64 redhat-rpm-config-296-1.fc42.noarch rpm-4.20.0-3.fc42.x86_64 rpm-build-4.20.0-3.fc42.x86_64 rpm-build-libs-4.20.0-3.fc42.x86_64 rpm-libs-4.20.0-3.fc42.x86_64 rpm-sequoia-1.7.0-3.fc42.x86_64 rust-srpm-macros-26.3-3.fc42.noarch sed-4.9-3.fc41.x86_64 setup-2.15.0-5.fc41.noarch shadow-utils-4.17.0~rc1-1.fc42.x86_64 sqlite-libs-3.47.2-1.fc42.x86_64 systemd-libs-257-1.fc42.x86_64 tar-1.35-4.fc41.x86_64 unzip-6.0-65.fc42.x86_64 util-linux-2.40.2-8.fc42.x86_64 util-linux-core-2.40.2-8.fc42.x86_64 which-2.21-42.fc41.x86_64 xxhash-libs-0.8.2-4.fc42.x86_64 xz-5.6.3-2.fc42.x86_64 xz-libs-5.6.3-2.fc42.x86_64 zig-srpm-macros-1-3.fc41.noarch zip-3.0-42.fc42.x86_64 zlib-ng-compat-2.2.2-1.fc42.x86_64 zstd-1.5.6-2.fc41.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1726185600 Wrote: /builddir/build/SRPMS/python-valkey-6.0.2-1.fc42.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1734696984.943096/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-4lt1r902/python-valkey/python-valkey.spec) Config(child) 0 minutes 13 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/python-valkey-6.0.2-1.fc42.src.rpm) Config(fedora-rawhide-x86_64) Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1734696984.943096/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management from host and used with --installroot: rpm-4.20.0-1.fc41.x86_64 rpm-sequoia-1.7.0-2.fc41.x86_64 python3-dnf-4.22.0-1.fc41.noarch python3-dnf-plugins-core-4.10.0-1.fc41.noarch dnf5-5.2.8.1-2.fc41.x86_64 dnf5-plugins-5.2.8.1-2.fc41.x86_64 Finish: chroot init Start: build phase for python-valkey-6.0.2-1.fc42.src.rpm Start: build setup for python-valkey-6.0.2-1.fc42.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1726185600 Wrote: /builddir/build/SRPMS/python-valkey-6.0.2-1.fc42.src.rpm Updating and loading repositories: fedora 100% | 801.8 KiB/s | 28.1 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 73.6 KiB/s | 3.8 KiB | 00m00s Copr repository 100% | 48.0 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package Arch Version Repository Size Installing: python3-cachetools noarch 5.4.0-6.fc42 copr_base 135.0 KiB python3-devel x86_64 3.14.0~a3-1.fc42 copr_base 1.9 MiB python3-pytest noarch 8.3.4-2.fc42 copr_base 4.0 MiB python3-pytest-asyncio noarch 0.23.8-2.fc42 copr_base 156.5 KiB python3-pytest-timeout noarch 2.3.1-4.fc42 copr_base 80.7 KiB valkey x86_64 8.0.1-3.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.5 MiB Installing dependencies: dbus x86_64 1:1.16.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 0.0 B dbus-broker x86_64 36-4.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 382.8 KiB dbus-common noarch 1:1.16.0-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11.2 KiB expat x86_64 2.6.4-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 285.5 KiB libseccomp x86_64 2.5.5-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 173.3 KiB logrotate x86_64 3.22.0-2.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 153.1 KiB mpdecimal x86_64 2.5.1-16.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 204.9 KiB pyproject-rpm-macros noarch 1.16.3-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 113.7 KiB python-pip-wheel noarch 24.3.1-2.fc42 copr_base 1.2 MiB python-rpm-macros noarch 3.14-3.fc42 copr_base 22.1 KiB python3 x86_64 3.14.0~a3-1.fc42 copr_base 30.7 KiB python3-iniconfig noarch 1.1.1-24.fc42 copr_base 20.7 KiB python3-libs x86_64 3.14.0~a3-1.fc42 copr_base 40.6 MiB python3-packaging noarch 24.2-2.fc42 copr_base 593.2 KiB python3-pluggy noarch 1.5.0-1.fc42 copr_base 209.8 KiB python3-rpm-generators noarch 14-11.fc41 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 81.7 KiB python3-rpm-macros noarch 3.14-3.fc42 copr_base 6.4 KiB systemd x86_64 257-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 17.4 MiB systemd-pam x86_64 257-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 MiB systemd-rpm-macros noarch 257-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 10.7 KiB tzdata noarch 2024b-1.fc42 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.6 MiB Transaction Summary: Installing: 27 packages Total size of inbound packages is 20 MiB. Need to download 8 MiB. After this operation, 76 MiB extra will be used (install 76 MiB, remove 0 B). [1/1] python3-devel-0:3.14.0~a3-1.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [1/1] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/2] python3-cachetools-0:5.4.0-6.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [2/2] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/6] python3-0:3.14.0~a3-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [2/7] python3-libs-0:3.14.0~a3-1.fc42.x 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [3/8] python3-pytest-0:8.3.4-2.fc42.noa 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [4/9] python3-iniconfig-0:1.1.1-24.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 5/10] python3-packaging-0:24.2-2.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 6/11] python3-pluggy-0:1.5.0-1.fc42.n 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 7/12] expat-0:2.6.4-1.fc42.x86_64 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 8/13] mpdecimal-0:2.5.1-16.fc41.x86_6 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [ 9/14] python-pip-wheel-0:24.3.1-2.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [10/15] tzdata-0:2024b-1.fc42.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [11/23] python-rpm-macros-0:3.14-3.fc42 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [12/24] python3-rpm-macros-0:3.14-3.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [13/25] pyproject-rpm-macros-0:1.16.3-1 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [14/26] python3-rpm-generators-0:14-11. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [15/27] python3-pytest-asyncio-0:0.23.8 100% | 1.3 MiB/s | 46.4 KiB | 00m00s [16/27] python3-pytest-timeout-0:2.3.1- 100% | 799.3 KiB/s | 30.4 KiB | 00m00s [17/27] logrotate-0:3.22.0-2.fc41.x86_6 100% | 1.3 MiB/s | 75.9 KiB | 00m00s [18/27] valkey-0:8.0.1-3.fc42.x86_64 100% | 13.4 MiB/s | 1.6 MiB | 00m00s [19/27] dbus-1:1.16.0-1.fc42.x86_64 100% | 324.9 KiB/s | 7.5 KiB | 00m00s [20/27] libseccomp-0:2.5.5-2.fc41.x86_6 100% | 3.4 MiB/s | 70.2 KiB | 00m00s [21/27] systemd-pam-0:257-1.fc42.x86_64 100% | 8.6 MiB/s | 396.1 KiB | 00m00s [22/27] dbus-broker-0:36-4.fc41.x86_64 100% | 6.2 MiB/s | 171.7 KiB | 00m00s [23/27] dbus-common-1:1.16.0-1.fc42.noa 100% | 748.4 KiB/s | 14.2 KiB | 00m00s [24/27] systemd-rpm-macros-0:257-1.fc42 100% | 1.8 MiB/s | 34.7 KiB | 00m00s [25/27] systemd-0:257-1.fc42.x86_64 100% | 32.4 MiB/s | 5.5 MiB | 00m00s -------------------------------------------------------------------------------- [27/27] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction [ 1/29] Verify package files 100% | 341.0 B/s | 27.0 B | 00m00s [ 2/29] Prepare transaction 100% | 465.0 B/s | 27.0 B | 00m00s [ 3/29] Installing python-rpm-macros-0: 100% | 22.3 MiB/s | 22.8 KiB | 00m00s [ 4/29] Installing python3-rpm-macros-0 100% | 0.0 B/s | 6.7 KiB | 00m00s [ 5/29] Installing expat-0:2.6.4-1.fc42 100% | 93.6 MiB/s | 287.6 KiB | 00m00s [ 6/29] Installing pyproject-rpm-macros 100% | 113.0 MiB/s | 115.7 KiB | 00m00s [ 7/29] Installing dbus-common-1:1.16.0 100% | 356.6 KiB/s | 13.6 KiB | 00m00s [ 8/29] Installing dbus-broker-0:36-4.f 100% | 25.1 MiB/s | 385.3 KiB | 00m00s [ 9/29] Installing dbus-1:1.16.0-1.fc42 100% | 0.0 B/s | 124.0 B | 00m00s [10/29] Installing libseccomp-0:2.5.5-2 100% | 85.5 MiB/s | 175.2 KiB | 00m00s [11/29] Installing systemd-pam-0:257-1. 100% | 137.4 MiB/s | 1.1 MiB | 00m00s [12/29] Installing systemd-0:257-1.fc42 100% | 57.5 MiB/s | 17.5 MiB | 00m00s >>> Running post-install scriptlet: systemd-0:257-1.fc42.x86_64 >>> Finished post-install scriptlet: systemd-0:257-1.fc42.x86_64 >>> Scriptlet output: >>> Creating group 'systemd-journal' with GID 190. >>> Creating group 'systemd-oom' with GID 999. >>> Creating user 'systemd-oom' (systemd Userspace OOM Killer) with UID 999 and >>> [13/29] Installing logrotate-0:3.22.0-2 100% | 4.9 MiB/s | 155.7 KiB | 00m00s >>> Running post-install scriptlet: logrotate-0:3.22.0-2.fc41.x86_64 >>> Finished post-install scriptlet: logrotate-0:3.22.0-2.fc41.x86_64 >>> Scriptlet output: >>> Created symlink '/etc/systemd/system/timers.target.wants/logrotate.timer' ↠>>> [14/29] Installing tzdata-0:2024b-1.fc4 100% | 24.5 MiB/s | 1.9 MiB | 00m00s [15/29] Installing python-pip-wheel-0:2 100% | 311.0 MiB/s | 1.2 MiB | 00m00s [16/29] Installing mpdecimal-0:2.5.1-16 100% | 40.2 MiB/s | 206.0 KiB | 00m00s [17/29] Installing python3-libs-0:3.14. 100% | 194.9 MiB/s | 40.9 MiB | 00m00s [18/29] Installing python3-0:3.14.0~a3- 100% | 31.7 MiB/s | 32.5 KiB | 00m00s [19/29] Installing python3-packaging-0: 100% | 98.6 MiB/s | 605.5 KiB | 00m00s [20/29] Installing python3-rpm-generato 100% | 81.0 MiB/s | 82.9 KiB | 00m00s [21/29] Installing python3-iniconfig-0: 100% | 11.5 MiB/s | 23.7 KiB | 00m00s [22/29] Installing python3-pluggy-0:1.5 100% | 70.3 MiB/s | 216.1 KiB | 00m00s [23/29] Installing python3-pytest-0:8.3 100% | 185.3 MiB/s | 4.1 MiB | 00m00s [24/29] Installing python3-pytest-async 100% | 78.3 MiB/s | 160.4 KiB | 00m00s [25/29] Installing python3-pytest-timeo 100% | 40.5 MiB/s | 82.9 KiB | 00m00s [26/29] Installing python3-devel-0:3.14 100% | 107.3 MiB/s | 1.9 MiB | 00m00s [27/29] Installing python3-cachetools-0 100% | 4.2 MiB/s | 138.6 KiB | 00m00s [28/29] Installing valkey-0:8.0.1-3.fc4 100% | 94.7 MiB/s | 5.5 MiB | 00m00s [29/29] Installing systemd-rpm-macros-0 100% | 57.1 KiB/s | 11.2 KiB | 00m00s Warning: skipped OpenPGP checks for 27 packages from repositories: copr_base, http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch Complete! Finish: build setup for python-valkey-6.0.2-1.fc42.src.rpm Start: rpmbuild python-valkey-6.0.2-1.fc42.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1726185600 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.VDx88t + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + test -d /builddir/build/BUILD/python-valkey-6.0.2-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /builddir/build/BUILD/python-valkey-6.0.2-build + /usr/bin/rm -rf /builddir/build/BUILD/python-valkey-6.0.2-build + /usr/bin/mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build + /usr/bin/mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build/SPECPARTS + RPM_EC=0 ++ jobs -p + exit 0 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.zSsKs3 + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + cd /builddir/build/BUILD/python-valkey-6.0.2-build + rm -rf valkey-py-6.0.2 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/python-valkey-6.0.2.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd valkey-py-6.0.2 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -e '/ocsp/ s/pyopenssl==/pyopenssl>=/' -i setup.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.BNLzn3 + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + cd valkey-py-6.0.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + RPM_TOXENV=py314 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir --output /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires -x ocsp Handling setuptools >= 40.8 from default build backend Requirement not satisfied: setuptools >= 40.8 Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-valkey-6.0.2-1.fc42.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: fedora 100% | 967.7 KiB/s | 28.1 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 72.2 KiB/s | 3.8 KiB | 00m00s Copr repository 100% | 5.6 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.16.3-1.fc42.noarch" is already installed. Package "python3-devel-3.14.0~a3-1.fc42.x86_64" is already installed. Package "python3-cachetools-5.4.0-6.fc42.noarch" is already installed. Package "python3-packaging-24.2-2.fc42.noarch" is already installed. Package "python3-pytest-8.3.4-2.fc42.noarch" is already installed. Package "python3-pytest-asyncio-0.23.8-2.fc42.noarch" is already installed. Package "python3-pytest-timeout-2.3.1-4.fc42.noarch" is already installed. Package "valkey-8.0.1-3.fc42.x86_64" is already installed. Package Arch Version Repository Size Installing: python3-pip noarch 24.3.1-2.fc42 copr_base 12.0 MiB python3-setuptools noarch 74.1.3-5.fc42 copr_base 8.6 MiB Transaction Summary: Installing: 2 packages Total size of inbound packages is 4 MiB. Need to download 0 B. After this operation, 21 MiB extra will be used (install 21 MiB, remove 0 B). [1/1] python3-pip-0:24.3.1-2.fc42.noarc 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [1/1] Total 100% | 0.0 B/s | 0.0 B | 00m00s [1/2] python3-setuptools-0:74.1.3-5.fc4 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded -------------------------------------------------------------------------------- [2/2] Total 100% | 0.0 B/s | 0.0 B | 00m00s Running transaction [1/4] Verify package files 100% | 105.0 B/s | 2.0 B | 00m00s [2/4] Prepare transaction 100% | 60.0 B/s | 2.0 B | 00m00s [3/4] Installing python3-setuptools-0:7 100% | 116.0 MiB/s | 8.8 MiB | 00m00s [4/4] Installing python3-pip-0:24.3.1-2 100% | 93.3 MiB/s | 12.2 MiB | 00m00s Warning: skipped OpenPGP checks for 2 packages from repository: copr_base Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1726185600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.inuxoQ + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + cd valkey-py-6.0.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + RPM_TOXENV=py314 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir --output /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires -x ocsp Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 74.1.3) running egg_info creating valkey.egg-info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt writing manifest file 'valkey.egg-info/SOURCES.txt' reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' running dist_info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/valkey-6.0.2.dist-info' Handling async-timeout >=4.0.3 ; python_version < "3.11.3" from hook generated metadata: Requires-Dist (valkey) Ignoring alien requirement: async-timeout >=4.0.3 ; python_version < "3.11.3" Handling libvalkey >=4.0.0 ; extra == 'libvalkey' from hook generated metadata: Requires-Dist (valkey) Ignoring alien requirement: libvalkey >=4.0.0 ; extra == 'libvalkey' Handling cryptography >=36.0.1 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement not satisfied: cryptography >=36.0.1 ; extra == 'ocsp' Handling pyopenssl >=23.2.1 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement not satisfied: pyopenssl >=23.2.1 ; extra == 'ocsp' Handling requests >=2.31.0 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement not satisfied: requests >=2.31.0 ; extra == 'ocsp' + cat /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires + rm -rfv valkey-6.0.2.dist-info/ removed 'valkey-6.0.2.dist-info/top_level.txt' removed 'valkey-6.0.2.dist-info/METADATA' removed 'valkey-6.0.2.dist-info/LICENSE' removed directory 'valkey-6.0.2.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-valkey-6.0.2-1.fc42.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Additional repo http_kojipkgs_fedorapr 100% | 72.2 KiB/s | 3.8 KiB | 00m00s fedora 100% | 1.1 MiB/s | 28.1 KiB | 00m00s Copr repository 100% | 51.2 KiB/s | 1.5 KiB | 00m00s Repositories loaded. Package "pyproject-rpm-macros-1.16.3-1.fc42.noarch" is already installed. Package "python3-devel-3.14.0~a3-1.fc42.x86_64" is already installed. Package "python3-cachetools-5.4.0-6.fc42.noarch" is already installed. Package "python3-packaging-24.2-2.fc42.noarch" is already installed. Package "python3-pip-24.3.1-2.fc42.noarch" is already installed. Package "python3-pytest-8.3.4-2.fc42.noarch" is already installed. Package "python3-pytest-asyncio-0.23.8-2.fc42.noarch" is already installed. Package "python3-pytest-timeout-2.3.1-4.fc42.noarch" is already installed. Package "python3-setuptools-74.1.3-5.fc42.noarch" is already installed. Package "valkey-8.0.1-3.fc42.x86_64" is already installed. Package Arch Version Repository Size Installing: python3-cryptography x86_64 43.0.0-3.fc42 copr_base 4.8 MiB python3-pyOpenSSL noarch 24.2.1-1.fc42 copr_base 792.3 KiB python3-requests noarch 2.32.3-3.fc42 copr_base 484.8 KiB Installing dependencies: python3-cffi x86_64 1.17.1-1.fc42 copr_base 1.3 MiB python3-charset-normalizer noarch 3.4.0-1.fc42 copr_base 336.0 KiB python3-idna noarch 3.10-1.fc42 copr_base 631.9 KiB python3-ply noarch 3.11-25.fc42 copr_base 564.4 KiB python3-pycparser noarch 2.20-18.fc42 copr_base 798.3 KiB python3-urllib3 noarch 2.2.3-6.fc42 copr_base 1.0 MiB Transaction Summary: Installing: 9 packages Total size of inbound packages is 3 MiB. Need to download 2 MiB. After this operation, 11 MiB extra will be used (install 11 MiB, remove 0 B). [1/3] python3-requests-0:2.32.3-3.fc42. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [2/5] python3-charset-normalizer-0:3.4. 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [3/6] python3-idna-0:3.10-1.fc42.noarch 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [4/7] python3-urllib3-0:2.2.3-6.fc42.no 100% | 0.0 B/s | 0.0 B | 00m00s >>> Already downloaded [5/9] python3-pyOpenSSL-0:24.2.1-1.fc42 100% | 2.9 MiB/s | 130.0 KiB | 00m00s [6/9] python3-cffi-0:1.17.1-1.fc42.x86_ 100% | 4.9 MiB/s | 298.4 KiB | 00m00s [7/9] python3-pycparser-0:2.20-18.fc42. 100% | 4.4 MiB/s | 150.0 KiB | 00m00s [8/9] python3-cryptography-0:43.0.0-3.f 100% | 16.0 MiB/s | 1.3 MiB | 00m00s [9/9] python3-ply-0:3.11-25.fc42.noarch 100% | 5.9 MiB/s | 132.1 KiB | 00m00s -------------------------------------------------------------------------------- [9/9] Total 100% | 23.7 MiB/s | 2.0 MiB | 00m00s Running transaction [ 1/11] Verify package files 100% | 750.0 B/s | 9.0 B | 00m00s [ 2/11] Prepare transaction 100% | 310.0 B/s | 9.0 B | 00m00s [ 3/11] Installing python3-idna-0:3.10- 100% | 124.6 MiB/s | 638.2 KiB | 00m00s [ 4/11] Installing python3-urllib3-0:2. 100% | 118.0 MiB/s | 1.1 MiB | 00m00s [ 5/11] Installing python3-ply-0:3.11-2 100% | 139.1 MiB/s | 569.6 KiB | 00m00s [ 6/11] Installing python3-pycparser-0: 100% | 131.8 MiB/s | 809.7 KiB | 00m00s [ 7/11] Installing python3-cffi-0:1.17. 100% | 166.8 MiB/s | 1.3 MiB | 00m00s [ 8/11] Installing python3-cryptography 100% | 114.0 MiB/s | 4.9 MiB | 00m00s [ 9/11] Installing python3-charset-norm 100% | 67.6 MiB/s | 345.9 KiB | 00m00s [10/11] Installing python3-requests-0:2 100% | 80.9 MiB/s | 496.9 KiB | 00m00s [11/11] Installing python3-pyOpenSSL-0: 100% | 21.1 MiB/s | 798.3 KiB | 00m00s Warning: skipped OpenPGP checks for 9 packages from repository: copr_base Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1726185600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.mNMiZa + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + cd valkey-py-6.0.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + RPM_TOXENV=py314 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir --output /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires -x ocsp Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 74.1.3) running egg_info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' running dist_info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/valkey-6.0.2.dist-info' Handling async-timeout >=4.0.3 ; python_version < "3.11.3" from hook generated metadata: Requires-Dist (valkey) Ignoring alien requirement: async-timeout >=4.0.3 ; python_version < "3.11.3" Handling libvalkey >=4.0.0 ; extra == 'libvalkey' from hook generated metadata: Requires-Dist (valkey) Ignoring alien requirement: libvalkey >=4.0.0 ; extra == 'libvalkey' Handling cryptography >=36.0.1 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement satisfied: cryptography >=36.0.1 ; extra == 'ocsp' (installed: cryptography 43.0.0) Handling pyopenssl >=23.2.1 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement satisfied: pyopenssl >=23.2.1 ; extra == 'ocsp' (installed: pyopenssl 24.2.1) Handling requests >=2.31.0 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement satisfied: requests >=2.31.0 ; extra == 'ocsp' (installed: requests 2.32.3) + cat /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires + rm -rfv valkey-6.0.2.dist-info/ removed 'valkey-6.0.2.dist-info/top_level.txt' removed 'valkey-6.0.2.dist-info/METADATA' removed 'valkey-6.0.2.dist-info/LICENSE' removed directory 'valkey-6.0.2.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-valkey-6.0.2-1.fc42.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires Updating and loading repositories: Copr repository 100% | 49.6 KiB/s | 1.5 KiB | 00m00s Additional repo http_kojipkgs_fedorapr 100% | 73.6 KiB/s | 3.8 KiB | 00m00s fedora 100% | 935.5 KiB/s | 28.1 KiB | 00m00s Copr repository 100% | 33.7 MiB/s | 7.6 MiB | 00m00s Repositories loaded. Nothing to do. Package "pyproject-rpm-macros-1.16.3-1.fc42.noarch" is already installed. Package "python3-devel-3.14.0~a3-1.fc42.x86_64" is already installed. Package "python3-cachetools-5.4.0-6.fc42.noarch" is already installed. Package "python3-cryptography-43.0.0-3.fc42.x86_64" is already installed. Package "python3-packaging-24.2-2.fc42.noarch" is already installed. Package "python3-pip-24.3.1-2.fc42.noarch" is already installed. Package "python3-pyOpenSSL-24.2.1-1.fc42.noarch" is already installed. Package "python3-pytest-8.3.4-2.fc42.noarch" is already installed. Package "python3-pytest-asyncio-0.23.8-2.fc42.noarch" is already installed. Package "python3-pytest-timeout-2.3.1-4.fc42.noarch" is already installed. Package "python3-requests-2.32.3-3.fc42.noarch" is already installed. Package "python3-setuptools-74.1.3-5.fc42.noarch" is already installed. Package "valkey-8.0.1-3.fc42.x86_64" is already installed. Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1726185600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.lgQUKo + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + cd valkey-py-6.0.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + RPM_TOXENV=py314 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir --output /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires -x ocsp Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 74.1.3) running egg_info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' running dist_info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/valkey-6.0.2.dist-info' Handling async-timeout >=4.0.3 ; python_version < "3.11.3" from hook generated metadata: Requires-Dist (valkey) Ignoring alien requirement: async-timeout >=4.0.3 ; python_version < "3.11.3" Handling libvalkey >=4.0.0 ; extra == 'libvalkey' from hook generated metadata: Requires-Dist (valkey) Ignoring alien requirement: libvalkey >=4.0.0 ; extra == 'libvalkey' Handling cryptography >=36.0.1 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement satisfied: cryptography >=36.0.1 ; extra == 'ocsp' (installed: cryptography 43.0.0) Handling pyopenssl >=23.2.1 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement satisfied: pyopenssl >=23.2.1 ; extra == 'ocsp' (installed: pyopenssl 24.2.1) Handling requests >=2.31.0 ; extra == 'ocsp' from hook generated metadata: Requires-Dist (valkey) Requirement satisfied: requests >=2.31.0 ; extra == 'ocsp' (installed: requests 2.32.3) + cat /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-buildrequires + rm -rfv valkey-6.0.2.dist-info/ removed 'valkey-6.0.2.dist-info/top_level.txt' removed 'valkey-6.0.2.dist-info/METADATA' removed 'valkey-6.0.2.dist-info/LICENSE' removed directory 'valkey-6.0.2.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.TMxwiQ + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd valkey-py-6.0.2 + mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir Processing /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) running dist_info creating /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info writing /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-modern-metadata-xm19kcwv/valkey-6.0.2.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: valkey Building wheel for valkey (pyproject.toml): started Running command Building wheel for valkey (pyproject.toml) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/valkey copying valkey/__init__.py -> build/lib/valkey copying valkey/_cache.py -> build/lib/valkey copying valkey/backoff.py -> build/lib/valkey copying valkey/client.py -> build/lib/valkey copying valkey/cluster.py -> build/lib/valkey copying valkey/connection.py -> build/lib/valkey copying valkey/crc.py -> build/lib/valkey copying valkey/credentials.py -> build/lib/valkey copying valkey/exceptions.py -> build/lib/valkey copying valkey/lock.py -> build/lib/valkey copying valkey/ocsp.py -> build/lib/valkey copying valkey/retry.py -> build/lib/valkey copying valkey/sentinel.py -> build/lib/valkey copying valkey/typing.py -> build/lib/valkey copying valkey/utils.py -> build/lib/valkey creating build/lib/valkey/_parsers copying valkey/_parsers/__init__.py -> build/lib/valkey/_parsers copying valkey/_parsers/base.py -> build/lib/valkey/_parsers copying valkey/_parsers/commands.py -> build/lib/valkey/_parsers copying valkey/_parsers/encoders.py -> build/lib/valkey/_parsers copying valkey/_parsers/helpers.py -> build/lib/valkey/_parsers copying valkey/_parsers/libvalkey.py -> build/lib/valkey/_parsers copying valkey/_parsers/resp2.py -> build/lib/valkey/_parsers copying valkey/_parsers/resp3.py -> build/lib/valkey/_parsers copying valkey/_parsers/socket.py -> build/lib/valkey/_parsers copying valkey/_parsers/url_parser.py -> build/lib/valkey/_parsers creating build/lib/valkey/asyncio copying valkey/asyncio/__init__.py -> build/lib/valkey/asyncio copying valkey/asyncio/client.py -> build/lib/valkey/asyncio copying valkey/asyncio/cluster.py -> build/lib/valkey/asyncio copying valkey/asyncio/connection.py -> build/lib/valkey/asyncio copying valkey/asyncio/lock.py -> build/lib/valkey/asyncio copying valkey/asyncio/retry.py -> build/lib/valkey/asyncio copying valkey/asyncio/sentinel.py -> build/lib/valkey/asyncio copying valkey/asyncio/utils.py -> build/lib/valkey/asyncio creating build/lib/valkey/commands copying valkey/commands/__init__.py -> build/lib/valkey/commands copying valkey/commands/cluster.py -> build/lib/valkey/commands copying valkey/commands/core.py -> build/lib/valkey/commands copying valkey/commands/helpers.py -> build/lib/valkey/commands copying valkey/commands/sentinel.py -> build/lib/valkey/commands copying valkey/commands/valkeymodules.py -> build/lib/valkey/commands creating build/lib/valkey/commands/bf copying valkey/commands/bf/__init__.py -> build/lib/valkey/commands/bf copying valkey/commands/bf/commands.py -> build/lib/valkey/commands/bf copying valkey/commands/bf/info.py -> build/lib/valkey/commands/bf creating build/lib/valkey/commands/graph copying valkey/commands/graph/__init__.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/commands.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/edge.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/exceptions.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/execution_plan.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/node.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/path.py -> build/lib/valkey/commands/graph copying valkey/commands/graph/query_result.py -> build/lib/valkey/commands/graph creating build/lib/valkey/commands/json copying valkey/commands/json/__init__.py -> build/lib/valkey/commands/json copying valkey/commands/json/_util.py -> build/lib/valkey/commands/json copying valkey/commands/json/commands.py -> build/lib/valkey/commands/json copying valkey/commands/json/decoders.py -> build/lib/valkey/commands/json copying valkey/commands/json/path.py -> build/lib/valkey/commands/json creating build/lib/valkey/commands/search copying valkey/commands/search/__init__.py -> build/lib/valkey/commands/search copying valkey/commands/search/_util.py -> build/lib/valkey/commands/search copying valkey/commands/search/aggregation.py -> build/lib/valkey/commands/search copying valkey/commands/search/commands.py -> build/lib/valkey/commands/search copying valkey/commands/search/document.py -> build/lib/valkey/commands/search copying valkey/commands/search/field.py -> build/lib/valkey/commands/search copying valkey/commands/search/indexDefinition.py -> build/lib/valkey/commands/search copying valkey/commands/search/query.py -> build/lib/valkey/commands/search copying valkey/commands/search/querystring.py -> build/lib/valkey/commands/search copying valkey/commands/search/reducers.py -> build/lib/valkey/commands/search copying valkey/commands/search/result.py -> build/lib/valkey/commands/search copying valkey/commands/search/suggestion.py -> build/lib/valkey/commands/search creating build/lib/valkey/commands/timeseries copying valkey/commands/timeseries/__init__.py -> build/lib/valkey/commands/timeseries copying valkey/commands/timeseries/commands.py -> build/lib/valkey/commands/timeseries copying valkey/commands/timeseries/info.py -> build/lib/valkey/commands/timeseries copying valkey/commands/timeseries/utils.py -> build/lib/valkey/commands/timeseries running egg_info writing valkey.egg-info/PKG-INFO writing dependency_links to valkey.egg-info/dependency_links.txt writing requirements to valkey.egg-info/requires.txt writing top-level names to valkey.egg-info/top_level.txt reading manifest file 'valkey.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' adding license file 'LICENSE' writing manifest file 'valkey.egg-info/SOURCES.txt' copying valkey/py.typed -> build/lib/valkey installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/valkey copying build/lib/valkey/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/_cache.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/backoff.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/client.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/cluster.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/connection.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/crc.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/credentials.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/exceptions.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/lock.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/ocsp.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/retry.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/sentinel.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/typing.py -> build/bdist.linux-x86_64/wheel/./valkey copying build/lib/valkey/utils.py -> build/bdist.linux-x86_64/wheel/./valkey creating build/bdist.linux-x86_64/wheel/valkey/_parsers copying build/lib/valkey/_parsers/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/base.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/commands.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/encoders.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/helpers.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/libvalkey.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/resp2.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/resp3.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/socket.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers copying build/lib/valkey/_parsers/url_parser.py -> build/bdist.linux-x86_64/wheel/./valkey/_parsers creating build/bdist.linux-x86_64/wheel/valkey/asyncio copying build/lib/valkey/asyncio/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/client.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/cluster.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/connection.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/lock.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/retry.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/sentinel.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio copying build/lib/valkey/asyncio/utils.py -> build/bdist.linux-x86_64/wheel/./valkey/asyncio creating build/bdist.linux-x86_64/wheel/valkey/commands copying build/lib/valkey/commands/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/commands copying build/lib/valkey/commands/cluster.py -> build/bdist.linux-x86_64/wheel/./valkey/commands copying build/lib/valkey/commands/core.py -> build/bdist.linux-x86_64/wheel/./valkey/commands copying build/lib/valkey/commands/helpers.py -> build/bdist.linux-x86_64/wheel/./valkey/commands copying build/lib/valkey/commands/sentinel.py -> build/bdist.linux-x86_64/wheel/./valkey/commands copying build/lib/valkey/commands/valkeymodules.py -> build/bdist.linux-x86_64/wheel/./valkey/commands creating build/bdist.linux-x86_64/wheel/valkey/commands/bf copying build/lib/valkey/commands/bf/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/bf copying build/lib/valkey/commands/bf/commands.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/bf copying build/lib/valkey/commands/bf/info.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/bf creating build/bdist.linux-x86_64/wheel/valkey/commands/graph copying build/lib/valkey/commands/graph/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/commands.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/edge.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/exceptions.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/execution_plan.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/node.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/path.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph copying build/lib/valkey/commands/graph/query_result.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/graph creating build/bdist.linux-x86_64/wheel/valkey/commands/json copying build/lib/valkey/commands/json/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/json copying build/lib/valkey/commands/json/_util.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/json copying build/lib/valkey/commands/json/commands.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/json copying build/lib/valkey/commands/json/decoders.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/json copying build/lib/valkey/commands/json/path.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/json creating build/bdist.linux-x86_64/wheel/valkey/commands/search copying build/lib/valkey/commands/search/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/_util.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/aggregation.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/commands.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/document.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/field.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/indexDefinition.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/query.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/querystring.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/reducers.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/result.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search copying build/lib/valkey/commands/search/suggestion.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/search creating build/bdist.linux-x86_64/wheel/valkey/commands/timeseries copying build/lib/valkey/commands/timeseries/__init__.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/timeseries copying build/lib/valkey/commands/timeseries/commands.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/timeseries copying build/lib/valkey/commands/timeseries/info.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/timeseries copying build/lib/valkey/commands/timeseries/utils.py -> build/bdist.linux-x86_64/wheel/./valkey/commands/timeseries copying build/lib/valkey/py.typed -> build/bdist.linux-x86_64/wheel/./valkey running install_egg_info Copying valkey.egg-info to build/bdist.linux-x86_64/wheel/./valkey-6.0.2-py3.14.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/valkey-6.0.2.dist-info/WHEEL creating '/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir/pip-wheel-7zuda09i/.tmp-5dppbupx/valkey-6.0.2-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'valkey/__init__.py' adding 'valkey/_cache.py' adding 'valkey/backoff.py' adding 'valkey/client.py' adding 'valkey/cluster.py' adding 'valkey/connection.py' adding 'valkey/crc.py' adding 'valkey/credentials.py' adding 'valkey/exceptions.py' adding 'valkey/lock.py' adding 'valkey/ocsp.py' adding 'valkey/py.typed' adding 'valkey/retry.py' adding 'valkey/sentinel.py' adding 'valkey/typing.py' adding 'valkey/utils.py' adding 'valkey/_parsers/__init__.py' adding 'valkey/_parsers/base.py' adding 'valkey/_parsers/commands.py' adding 'valkey/_parsers/encoders.py' adding 'valkey/_parsers/helpers.py' adding 'valkey/_parsers/libvalkey.py' adding 'valkey/_parsers/resp2.py' adding 'valkey/_parsers/resp3.py' adding 'valkey/_parsers/socket.py' adding 'valkey/_parsers/url_parser.py' adding 'valkey/asyncio/__init__.py' adding 'valkey/asyncio/client.py' adding 'valkey/asyncio/cluster.py' adding 'valkey/asyncio/connection.py' adding 'valkey/asyncio/lock.py' adding 'valkey/asyncio/retry.py' adding 'valkey/asyncio/sentinel.py' adding 'valkey/asyncio/utils.py' adding 'valkey/commands/__init__.py' adding 'valkey/commands/cluster.py' adding 'valkey/commands/core.py' adding 'valkey/commands/helpers.py' adding 'valkey/commands/sentinel.py' adding 'valkey/commands/valkeymodules.py' adding 'valkey/commands/bf/__init__.py' adding 'valkey/commands/bf/commands.py' adding 'valkey/commands/bf/info.py' adding 'valkey/commands/graph/__init__.py' adding 'valkey/commands/graph/commands.py' adding 'valkey/commands/graph/edge.py' adding 'valkey/commands/graph/exceptions.py' adding 'valkey/commands/graph/execution_plan.py' adding 'valkey/commands/graph/node.py' adding 'valkey/commands/graph/path.py' adding 'valkey/commands/graph/query_result.py' adding 'valkey/commands/json/__init__.py' adding 'valkey/commands/json/_util.py' adding 'valkey/commands/json/commands.py' adding 'valkey/commands/json/decoders.py' adding 'valkey/commands/json/path.py' adding 'valkey/commands/search/__init__.py' adding 'valkey/commands/search/_util.py' adding 'valkey/commands/search/aggregation.py' adding 'valkey/commands/search/commands.py' adding 'valkey/commands/search/document.py' adding 'valkey/commands/search/field.py' adding 'valkey/commands/search/indexDefinition.py' adding 'valkey/commands/search/query.py' adding 'valkey/commands/search/querystring.py' adding 'valkey/commands/search/reducers.py' adding 'valkey/commands/search/result.py' adding 'valkey/commands/search/suggestion.py' adding 'valkey/commands/timeseries/__init__.py' adding 'valkey/commands/timeseries/commands.py' adding 'valkey/commands/timeseries/info.py' adding 'valkey/commands/timeseries/utils.py' adding 'valkey-6.0.2.dist-info/LICENSE' adding 'valkey-6.0.2.dist-info/METADATA' adding 'valkey-6.0.2.dist-info/WHEEL' adding 'valkey-6.0.2.dist-info/top_level.txt' adding 'valkey-6.0.2.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for valkey (pyproject.toml): finished with status 'done' Created wheel for valkey: filename=valkey-6.0.2-py3-none-any.whl size=259418 sha256=68e1b480c4ed9d2b4ca2da725404e1cf9f7c5f9f6d1428c12f8abf9cd2564770 Stored in directory: /builddir/.cache/pip/wheels/03/c7/f3/81ff2664f3ee962ca691cc7e32c08c968caf51d9fee32f634e Successfully built valkey + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.2ywVtD + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + '[' /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-valkey-6.0.2-build + mkdir /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd valkey-py-6.0.2 ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' ++ ls /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir/valkey-6.0.2-py3-none-any.whl ++ xargs basename --multiple + specifier=valkey==6.0.2 + '[' -z valkey==6.0.2 ']' + TMPDIR=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir valkey==6.0.2 Using pip 24.3.1 from /usr/lib/python3.14/site-packages/pip (python 3.14) Looking in links: /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/pyproject-wheeldir Processing ./pyproject-wheeldir/valkey-6.0.2-py3-none-any.whl Installing collected packages: valkey Successfully installed valkey-6.0.2 + '[' -d /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/bin ']' + rm -f /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages ']' + site_dirs+=("/usr/lib/python3.14/site-packages") + '[' /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib64/python3.14/site-packages '!=' /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages ']' + '[' -d /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib64/python3.14/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT --record /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info/RECORD --output /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-record + rm -fv /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info/RECORD removed '/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info/REQUESTED removed '/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey-6.0.2.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-modules --buildroot /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT --sitelib /usr/lib/python3.14/site-packages --sitearch /usr/lib64/python3.14/site-packages --python-version 3.14 --pyproject-record /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-record --prefix /usr valkey + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j2 Bytecompiling .py files below /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14 using python3.14 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-determinism --brp -j2 /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/commands.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/encoders.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/base.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/libvalkey.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/resp2.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/resp3.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/helpers.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/url_parser.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/_parsers/__pycache__/socket.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/cluster.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/client.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/lock.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/retry.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/sentinel.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/utils.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/connection.cpython-314.pyc: replacing with normalized version /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/bf/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/bf/__pycache__/commands.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/bf/__pycache__/info.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/asyncio/__pycache__/connection.cpython-314.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/commands.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/exceptions.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/edge.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/node.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/path.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/execution_plan.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/json/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/json/__pycache__/_util.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/graph/__pycache__/query_result.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/json/__pycache__/decoders.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/json/__pycache__/commands.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/json/__pycache__/path.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/_util.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/aggregation.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/document.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/field.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/indexDefinition.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/commands.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/query.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/querystring.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/reducers.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/result.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/search/__pycache__/suggestion.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/timeseries/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/timeseries/__pycache__/info.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/timeseries/__pycache__/utils.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/timeseries/__pycache__/commands.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/__pycache__/cluster.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/__pycache__/helpers.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/__pycache__/sentinel.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/__pycache__/valkeymodules.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/__init__.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/_cache.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/backoff.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/client.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/cluster.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/connection.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/crc.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/credentials.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/exceptions.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/lock.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/ocsp.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/retry.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/sentinel.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/typing.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/__pycache__/utils.cpython-314.pyc: rewriting with normalized contents /builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages/valkey/commands/__pycache__/core.cpython-314.pyc: rewriting with normalized contents Scanned 24 directories and 219 files, processed 72 inodes, 72 modified (2 replaced + 70 rewritten), 0 unsupported format, 0 errors Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.AYy5g9 + umask 022 + cd /builddir/build/BUILD/python-valkey-6.0.2-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd valkey-py-6.0.2 + '[' '!' -f /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-modules ']' + PATH=/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages + _PYTHONSITE=/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages + PYTHONDONTWRITEBYTECODE=1 + /usr/bin/python3 -sP /usr/lib/rpm/redhat/import_all_modules.py -f /builddir/build/BUILD/python-valkey-6.0.2-build/python-valkey-6.0.2-1.fc42.x86_64-pyproject-modules Check import: valkey Check import: valkey.asyncio Check import: valkey.asyncio.client Check import: valkey.asyncio.cluster Check import: valkey.asyncio.connection Check import: valkey.asyncio.lock Check import: valkey.asyncio.retry Check import: valkey.asyncio.sentinel Check import: valkey.asyncio.utils Check import: valkey.backoff Check import: valkey.client Check import: valkey.cluster Check import: valkey.commands Check import: valkey.commands.bf Check import: valkey.commands.bf.commands Check import: valkey.commands.bf.info Check import: valkey.commands.cluster Check import: valkey.commands.core Check import: valkey.commands.graph Check import: valkey.commands.graph.commands Check import: valkey.commands.graph.edge Check import: valkey.commands.graph.exceptions Check import: valkey.commands.graph.execution_plan Check import: valkey.commands.graph.node Check import: valkey.commands.graph.path Check import: valkey.commands.graph.query_result Check import: valkey.commands.helpers Check import: valkey.commands.json Check import: valkey.commands.json.commands Check import: valkey.commands.json.decoders Check import: valkey.commands.json.path Check import: valkey.commands.search Check import: valkey.commands.search.aggregation Check import: valkey.commands.search.commands Check import: valkey.commands.search.document Check import: valkey.commands.search.field Check import: valkey.commands.search.indexDefinition Check import: valkey.commands.search.query Check import: valkey.commands.search.querystring Check import: valkey.commands.search.reducers Check import: valkey.commands.search.result Check import: valkey.commands.search.suggestion Check import: valkey.commands.sentinel Check import: valkey.commands.timeseries Check import: valkey.commands.timeseries.commands Check import: valkey.commands.timeseries.info Check import: valkey.commands.timeseries.utils Check import: valkey.commands.valkeymodules Check import: valkey.connection Check import: valkey.crc Check import: valkey.credentials Check import: valkey.exceptions Check import: valkey.lock Check import: valkey.ocsp Check import: valkey.retry Check import: valkey.sentinel Check import: valkey.typing Check import: valkey.utils + echo 'enable-module-command yes' + valkey-server --port 6379 --enable-debug-command yes - + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-valkey-6.0.2-build/BUILDROOT/usr/lib/python3.14/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=2 + /usr/bin/pytest -m 'not onlycluster and not redismod and not ssl' -k 'not get_from_cache and not test_cache_decode_response[sentinel_setup0] and not psync and not test_geopos and not geosearch and not georadius' 1009:C 20 Dec 2024 12:16:56.670 * Reading config from stdin 1009:C 20 Dec 2024 12:16:56.670 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 1009:C 20 Dec 2024 12:16:56.670 * oO0OoO0OoO0Oo Valkey is starting oO0OoO0OoO0Oo 1009:C 20 Dec 2024 12:16:56.671 * Valkey version=8.0.1, bits=64, commit=00000000, modified=0, pid=1009, just started 1009:C 20 Dec 2024 12:16:56.671 * Configuration loaded 1009:M 20 Dec 2024 12:16:56.671 * monotonic clock: POSIX clock_gettime 1009:M 20 Dec 2024 12:16:56.672 * Running mode=standalone, port=6379. 1009:M 20 Dec 2024 12:16:56.673 * Server initialized 1009:M 20 Dec 2024 12:16:56.673 * Ready to accept connections tcp ============================= test session starts ============================== platform linux -- Python 3.14.0a3, pytest-8.3.4, pluggy-1.5.0 rootdir: /builddir/build/BUILD/python-valkey-6.0.2-build/valkey-py-6.0.2 configfile: pytest.ini plugins: asyncio-0.23.8, timeout-2.3.1 asyncio: mode=Mode.AUTO timeout: 30.0s timeout method: signal timeout func_only: False collected 3145 items / 664 deselected / 2481 selected tests/test_asyncio/test_bloom.py ssssssssssssssssssssssssssssssssssssssssssssss tests/test_asyncio/test_cache.py .......................... tests/test_asyncio/test_commands.py ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ssFF................ss................................................................ tests/test_asyncio/test_connect.py .. tests/test_asyncio/test_connection.py .......s........s...................... tests/test_asyncio/test_connection_pool.py .........................................................................)> ......X1009:M 20 Dec 2024 12:17:17.743 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.746 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.750 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.752 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.757 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.760 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.764 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.767 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.772 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.775 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.780 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.783 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.788 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.792 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.807 * DB saved on disk X1009:M 20 Dec 2024 12:17:17.822 * DB saved on disk X1009:M 20 Dec 2024 12:17:18.050 * DB saved on disk X1009:M 20 Dec 2024 12:17:18.281 * DB saved on disk X1009:M 20 Dec 2024 12:17:18.708 * DB saved on disk X1009:M 20 Dec 2024 12:17:19.134 * DB saved on disk tests/test_asyncio/test_credentials.py .................... tests/test_asyncio/test_cwe_404.py ........ tests/test_asyncio/test_encoding.py .1009:M 20 Dec 2024 12:17:33.601 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.605 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.610 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.614 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.618 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.622 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.626 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.630 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.635 * DB saved on disk .1009:M 20 Dec 2024 12:17:33.639 * DB saved on disk ......X1009:M 20 Dec 2024 12:17:33.667 * DB saved on disk X1009:M 20 Dec 2024 12:17:33.671 * DB saved on disk ...... tests/test_asyncio/test_graph.py ssssssssssssssssssssssssssssssssssssssss tests/test_asyncio/test_hash.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF tests/test_asyncio/test_json.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss tests/test_asyncio/test_lock.py ...........1009:M 20 Dec 2024 12:17:36.347 * DB saved on disk .1009:M 20 Dec 2024 12:17:36.352 * DB saved on disk .......................................... tests/test_asyncio/test_monitor.py ............ tests/test_asyncio/test_pipeline.py ........................................................ tests/test_asyncio/test_pubsub.py ...................................................................................................... tests/test_asyncio/test_retry.py ............................................................ tests/test_asyncio/test_scripting.py ................ tests/test_asyncio/test_search.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssss tests/test_asyncio/test_sentinel.py ................. tests/test_asyncio/test_sentinel_managed_connection.py . tests/test_asyncio/test_timeseries.py ssssssssssssssssssssssssssssssssssssssssssssssssssssss tests/test_bloom.py ssssssssssssssssssssssss tests/test_cache.py .................. tests/test_command_parser.py ..... tests/test_commands.py .........1009:M 20 Dec 2024 12:17:51.934 * DB saved on disk .........................................1009:M 20 Dec 2024 12:17:57.312 # WARNING: the new maxmemory value set via CONFIG SET (100) is smaller than the current memory usage (1088432). This will result in key eviction and/or the inability to accept new write commands depending on the maxmemory-policy. ..................1009:M 20 Dec 2024 12:17:57.382 * Background saving started by pid 2021 2021:C 20 Dec 2024 12:17:57.383 * DB saved on disk 2021:C 20 Dec 2024 12:17:57.383 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB 1009:M 20 Dec 2024 12:17:57.384 * Background saving terminated with success 1009:M 20 Dec 2024 12:17:57.684 * Background saving started by pid 2022 2022:C 20 Dec 2024 12:17:57.685 * DB saved on disk .2022:C 20 Dec 2024 12:17:57.686 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB 1009:M 20 Dec 2024 12:17:57.686 * Background saving terminated with success ................................................................................................ss..sss...............................................................................................................................................................sF...........s...................................................1009:M 20 Dec 2024 12:18:05.911 # Module /some/fake/path failed to load: /some/fake/path: cannot open shared object file: No such file or directory 1009:M 20 Dec 2024 12:18:05.911 # Module /some/fake/path failed to load: /some/fake/path: cannot open shared object file: No such file or directory .1009:M 20 Dec 2024 12:18:05.913 # Module /some/fake/path failed to load: /some/fake/path: cannot open shared object file: No such file or directory 1009:M 20 Dec 2024 12:18:05.913 # Module /some/fake/path failed to load: /some/fake/path: cannot open shared object file: No such file or directory .......x...... tests/test_connect.py ... tests/test_connection.py ..........s.................. tests/test_connection_pool.py ....................................................................... tests/test_credentials.py .......... tests/test_encoding.py ............ tests/test_function.py ....... tests/test_graph.py ssssssssssssssssssssss tests/test_graph_utils/test_edge.py .... tests/test_graph_utils/test_node.py ... tests/test_graph_utils/test_path.py ..... tests/test_hash.py FFFFF.FFFFF.FFFFF.FFFFF.FFFFFFFFFF tests/test_helpers.py ....... tests/test_json.py ssssssssssssssssssssssssssssssssssssssssssssssss tests/test_lock.py .............................. tests/test_monitor.py ...... tests/test_multiprocessing.py FFFFFFFFF tests/test_parsers/test_helpers.py ... tests/test_pipeline.py ........................... tests/test_pubsub.py ......................................................... tests/test_retry.py ................................................................... tests/test_scripting.py .................. tests/test_search.py sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss tests/test_sentinel.py .................. tests/test_timeseries.py ssssssssssssssssssssssssssssssssssssssss =================================== FAILURES =================================== ________ TestValkeyCommands.test_readonly_invalid_cluster_state[single] ________ self = r = )>)> @skip_if_server_version_lt("3.0.0") @pytest.mark.onlynoncluster async def test_readonly_invalid_cluster_state(self, r: valkey.Valkey): > with pytest.raises(exceptions.ValkeyError): E Failed: DID NOT RAISE tests/test_asyncio/test_commands.py:2381: Failed _________ TestValkeyCommands.test_readonly_invalid_cluster_state[pool] _________ self = r = )>)> @skip_if_server_version_lt("3.0.0") @pytest.mark.onlynoncluster async def test_readonly_invalid_cluster_state(self, r: valkey.Valkey): > with pytest.raises(exceptions.ValkeyError): E Failed: DID NOT RAISE tests/test_asyncio/test_commands.py:2381: Failed __________________________ test_hexpire_basic[single] __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hexpire("test:hash", 1, "field1") == [1] tests/test_asyncio/test_hash.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ___________________________ test_hexpire_basic[pool] ___________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hexpire("test:hash", 1, "field1") == [1] tests/test_asyncio/test_hash.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hexpire_with_timedelta[single] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_with_timedelta(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hexpire("test:hash", timedelta(seconds=1), "field1") == [1] tests/test_asyncio/test_hash.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________________ test_hexpire_with_timedelta[pool] _______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_with_timedelta(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hexpire("test:hash", timedelta(seconds=1), "field1") == [1] tests/test_asyncio/test_hash.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________________ test_hexpire_conditions[single] ________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) > assert await r.hexpire("test:hash", 2, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '2' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ________________________ test_hexpire_conditions[pool] _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) > assert await r.hexpire("test:hash", 2, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '2' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ________________ test_hexpire_nonexistent_key_or_field[single] _________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_nonexistent_key_or_field(r): await r.delete("test:hash") > assert await r.hexpire("test:hash", 1, "field1") == [] tests/test_asyncio/test_hash.py:48: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _________________ test_hexpire_nonexistent_key_or_field[pool] __________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_nonexistent_key_or_field(r): await r.delete("test:hash") > assert await r.hexpire("test:hash", 1, "field1") == [] tests/test_asyncio/test_hash.py:48: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hexpire_multiple_fields[single] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) > assert await r.hexpire("test:hash", 1, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError ______________________ test_hexpire_multiple_fields[pool] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpire_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) > assert await r.hexpire("test:hash", 1, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError _________________________ test_hpexpire_basic[single] __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hpexpire("test:hash", 500, "field1") == [1] tests/test_asyncio/test_hash.py:71: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError __________________________ test_hpexpire_basic[pool] ___________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hpexpire("test:hash", 500, "field1") == [1] tests/test_asyncio/test_hash.py:71: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hpexpire_with_timedelta[single] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_with_timedelta(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hpexpire("test:hash", timedelta(milliseconds=500), "field1") == [1] tests/test_asyncio/test_hash.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________________ test_hpexpire_with_timedelta[pool] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_with_timedelta(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert await r.hpexpire("test:hash", timedelta(milliseconds=500), "field1") == [1] tests/test_asyncio/test_hash.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________________ test_hpexpire_conditions[single] _______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) > assert await r.hpexpire("test:hash", 1500, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '1500' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ________________________ test_hpexpire_conditions[pool] ________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) > assert await r.hpexpire("test:hash", 1500, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '1500' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ________________ test_hpexpire_nonexistent_key_or_field[single] ________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_nonexistent_key_or_field(r): await r.delete("test:hash") > assert await r.hpexpire("test:hash", 500, "field1") == [] tests/test_asyncio/test_hash.py:108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _________________ test_hpexpire_nonexistent_key_or_field[pool] _________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_nonexistent_key_or_field(r): await r.delete("test:hash") > assert await r.hpexpire("test:hash", 500, "field1") == [] tests/test_asyncio/test_hash.py:108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ____________________ test_hpexpire_multiple_fields[single] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) > assert await r.hpexpire("test:hash", 500, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hpexpire_multiple_fields[pool] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpire_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) > assert await r.hpexpire("test:hash", 500, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError _________________________ test_hexpireat_basic[single] _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697055' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError __________________________ test_hexpireat_basic[pool] __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697055' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hexpireat_with_datetime[single] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_with_datetime(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = datetime.now() + timedelta(seconds=1) > assert await r.hexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697055' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________________ test_hexpireat_with_datetime[pool] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_with_datetime(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = datetime.now() + timedelta(seconds=1) > assert await r.hexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697055' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________________ test_hexpireat_conditions[single] _______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) future_exp_time = int((datetime.now() + timedelta(seconds=2)).timestamp()) past_exp_time = int((datetime.now() - timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", future_exp_time, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697056' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________________ test_hexpireat_conditions[pool] ________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) future_exp_time = int((datetime.now() + timedelta(seconds=2)).timestamp()) past_exp_time = int((datetime.now() - timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", future_exp_time, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697056' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________ test_hexpireat_nonexistent_key_or_field[single] ________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_nonexistent_key_or_field(r): await r.delete("test:hash") future_exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", future_exp_time, "field1") == [] tests/test_asyncio/test_hash.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697056' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ________________ test_hexpireat_nonexistent_key_or_field[pool] _________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_nonexistent_key_or_field(r): await r.delete("test:hash") future_exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", future_exp_time, "field1") == [] tests/test_asyncio/test_hash.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697056' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ____________________ test_hexpireat_multiple_fields[single] ____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", exp_time, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697056' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hexpireat_multiple_fields[pool] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpireat_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert await r.hexpireat("test:hash", exp_time, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697056' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError ________________________ test_hpexpireat_basic[single] _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = int((datetime.now() + timedelta(milliseconds=400)).timestamp() * 1000) > assert await r.hpexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:191: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697055608' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _________________________ test_hpexpireat_basic[pool] __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_basic(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = int((datetime.now() + timedelta(milliseconds=400)).timestamp() * 1000) > assert await r.hpexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:191: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697055656' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ____________________ test_hpexpireat_with_datetime[single] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_with_datetime(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = datetime.now() + timedelta(milliseconds=400) > assert await r.hpexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697055709' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _____________________ test_hpexpireat_with_datetime[pool] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_with_datetime(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = datetime.now() + timedelta(milliseconds=400) > assert await r.hpexpireat("test:hash", exp_time, "field1") == [1] tests/test_asyncio/test_hash.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697055768' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________________ test_hpexpireat_conditions[single] ______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) future_exp_time = int( (datetime.now() + timedelta(milliseconds=500)).timestamp() * 1000 ) past_exp_time = int( (datetime.now() - timedelta(milliseconds=500)).timestamp() * 1000 ) > assert await r.hpexpireat("test:hash", future_exp_time, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:218: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697055917' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________________ test_hpexpireat_conditions[pool] _______________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1"}) future_exp_time = int( (datetime.now() + timedelta(milliseconds=500)).timestamp() * 1000 ) past_exp_time = int( (datetime.now() - timedelta(milliseconds=500)).timestamp() * 1000 ) > assert await r.hpexpireat("test:hash", future_exp_time, "field1", xx=True) == [0] tests/test_asyncio/test_hash.py:218: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697055966' 'XX' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________ test_hpexpireat_nonexistent_key_or_field[single] _______________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_nonexistent_key_or_field(r): await r.delete("test:hash") future_exp_time = int( (datetime.now() + timedelta(milliseconds=500)).timestamp() * 1000 ) > assert await r.hpexpireat("test:hash", future_exp_time, "field1") == [] tests/test_asyncio/test_hash.py:231: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697056023' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ________________ test_hpexpireat_nonexistent_key_or_field[pool] ________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_nonexistent_key_or_field(r): await r.delete("test:hash") future_exp_time = int( (datetime.now() + timedelta(milliseconds=500)).timestamp() * 1000 ) > assert await r.hpexpireat("test:hash", future_exp_time, "field1") == [] tests/test_asyncio/test_hash.py:231: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697056088' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ___________________ test_hpexpireat_multiple_fields[single] ____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) exp_time = int((datetime.now() + timedelta(milliseconds=400)).timestamp() * 1000) > assert await r.hpexpireat("test:hash", exp_time, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:244: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697056040' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError ____________________ test_hpexpireat_multiple_fields[pool] _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpireat_multiple_fields(r): await r.delete("test:hash") await r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) exp_time = int((datetime.now() + timedelta(milliseconds=400)).timestamp() * 1000) > assert await r.hpexpireat("test:hash", exp_time, "field1", "field2") == [1, 1] tests/test_asyncio/test_hash.py:244: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697056092' 'FIELDS' '2' 'field1' 'field2' valkey/asyncio/connection.py:605: ResponseError ____________ test_hpersist_multiple_fields_mixed_conditions[single] ____________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpersist_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > await r.hexpire("test:hash", 5000, "field1") tests/test_asyncio/test_hash.py:255: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '5000' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _____________ test_hpersist_multiple_fields_mixed_conditions[pool] _____________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpersist_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > await r.hexpire("test:hash", 5000, "field1") tests/test_asyncio/test_hash.py:255: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '5000' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError __________ test_hexpiretime_multiple_fields_mixed_conditions[single] ___________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpiretime_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:264: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698855' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ___________ test_hexpiretime_multiple_fields_mixed_conditions[pool] ____________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hexpiretime_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:264: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698855' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError __________ test_hpexpiretime_multiple_fields_mixed_conditions[single] __________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpiretime_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:275: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698855' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ___________ test_hpexpiretime_multiple_fields_mixed_conditions[pool] ___________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_hpexpiretime_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:275: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698856' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________ test_ttl_multiple_fields_mixed_conditions[single] _______________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_ttl_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698856' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________ test_ttl_multiple_fields_mixed_conditions[pool] ________________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_ttl_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698856' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ______________ test_pttl_multiple_fields_mixed_conditions[single] ______________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_pttl_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698856' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError _______________ test_pttl_multiple_fields_mixed_conditions[pool] _______________ r = )>)> @skip_if_server_version_lt("7.3.240") async def test_pttl_multiple_fields_mixed_conditions(r): await r.delete("test:hash") await r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > await r.hexpireat("test:hash", future_time, "field1") tests/test_asyncio/test_hash.py:297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/asyncio/client.py:637: in execute_command response = await conn.retry.call_with_retry( valkey/asyncio/retry.py:59: in call_with_retry return await do() valkey/asyncio/client.py:606: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) valkey/asyncio/client.py:662: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False, timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, *, disconnect_on_error: bool = True, push_request: Optional[bool] = False, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout host_error = self._host_error() try: if ( read_timeout is not None and self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE ): async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) elif read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) elif self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = await self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None. Operation can be retried return None # it was a self.socket_timeout error. if disconnect_on_error: await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: await self.disconnect(nowait=True) raise ConnectionError(f"Error while reading from {host_error} : {e.args}") except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: await self.disconnect(nowait=True) raise if self.health_check_interval: next_time = asyncio.get_running_loop().time() + self.health_check_interval self.next_health_check = next_time if isinstance(response, ResponseError): > raise response from None E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698856' 'FIELDS' '1' 'field1' valkey/asyncio/connection.py:605: ResponseError ____________ TestValkeyCommands.test_readonly_invalid_cluster_state ____________ self = r = )>)> @pytest.mark.onlynoncluster @skip_if_server_version_lt("3.0.0") def test_readonly_invalid_cluster_state(self, r): > with pytest.raises(exceptions.ValkeyError): E Failed: DID NOT RAISE tests/test_commands.py:3429: Failed ______________________________ test_hexpire_basic ______________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpire_basic(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert r.hexpire("test:hash", 1, "field1") == [1] tests/test_hash.py:12: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5156: in hexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError _________________________ test_hexpire_with_timedelta __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpire_with_timedelta(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert r.hexpire("test:hash", timedelta(seconds=1), "field1") == [1] tests/test_hash.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5156: in hexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ___________________________ test_hexpire_conditions ____________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpire_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1"}) > assert r.hexpire("test:hash", 2, "field1", xx=True) == [0] tests/test_hash.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5156: in hexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '2' 'XX' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ____________________ test_hexpire_nonexistent_key_or_field _____________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpire_nonexistent_key_or_field(r): r.delete("test:hash") > assert r.hexpire("test:hash", 1, "field1") == [] tests/test_hash.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5156: in hexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError _________________________ test_hexpire_multiple_fields _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpire_multiple_fields(r): r.delete("test:hash") r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) > assert r.hexpire("test:hash", 1, "field1", "field2") == [1, 1] tests/test_hash.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5156: in hexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '1' 'FIELDS' '2' 'field1' 'field2' valkey/connection.py:570: ResponseError _____________________________ test_hpexpire_basic ______________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpire_basic(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert r.hpexpire("test:hash", 500, "field1") == [1] tests/test_hash.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5221: in hpexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError _________________________ test_hpexpire_with_timedelta _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpire_with_timedelta(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > assert r.hpexpire("test:hash", timedelta(milliseconds=500), "field1") == [1] tests/test_hash.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5221: in hpexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ___________________________ test_hpexpire_conditions ___________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpire_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1"}) > assert r.hpexpire("test:hash", 1500, "field1", xx=True) == [0] tests/test_hash.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5221: in hpexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '1500' 'XX' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ____________________ test_hpexpire_nonexistent_key_or_field ____________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpire_nonexistent_key_or_field(r): r.delete("test:hash") > assert r.hpexpire("test:hash", 500, "field1") == [] tests/test_hash.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5221: in hpexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ________________________ test_hpexpire_multiple_fields _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpire_multiple_fields(r): r.delete("test:hash") r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) > assert r.hpexpire("test:hash", 500, "field1", "field2") == [1, 1] tests/test_hash.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5221: in hpexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIRE', with args beginning with: 'test:hash' '500' 'FIELDS' '2' 'field1' 'field2' valkey/connection.py:570: ResponseError _____________________________ test_hexpireat_basic _____________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpireat_basic(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert r.hexpireat("test:hash", exp_time, "field1") == [1] tests/test_hash.py:151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697092' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError _________________________ test_hexpireat_with_datetime _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpireat_with_datetime(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = datetime.now() + timedelta(seconds=1) > assert r.hexpireat("test:hash", exp_time, "field1") == [1] tests/test_hash.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697092' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError __________________________ test_hexpireat_conditions ___________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpireat_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1"}) future_exp_time = int((datetime.now() + timedelta(seconds=2)).timestamp()) past_exp_time = int((datetime.now() - timedelta(seconds=1)).timestamp()) > assert r.hexpireat("test:hash", future_exp_time, "field1", xx=True) == [0] tests/test_hash.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697093' 'XX' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ___________________ test_hexpireat_nonexistent_key_or_field ____________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpireat_nonexistent_key_or_field(r): r.delete("test:hash") future_exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert r.hexpireat("test:hash", future_exp_time, "field1") == [] tests/test_hash.py:185: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697092' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ________________________ test_hexpireat_multiple_fields ________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpireat_multiple_fields(r): r.delete("test:hash") r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) exp_time = int((datetime.now() + timedelta(seconds=1)).timestamp()) > assert r.hexpireat("test:hash", exp_time, "field1", "field2") == [1, 1] tests/test_hash.py:198: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734697092' 'FIELDS' '2' 'field1' 'field2' valkey/connection.py:570: ResponseError ____________________________ test_hpexpireat_basic _____________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpireat_basic(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = int((datetime.now() + timedelta(milliseconds=400)).timestamp() * 1000) > assert r.hpexpireat("test:hash", exp_time, "field1") == [1] tests/test_hash.py:220: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5357: in hpexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697092212' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ________________________ test_hpexpireat_with_datetime _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpireat_with_datetime(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) exp_time = datetime.now() + timedelta(milliseconds=400) > assert r.hpexpireat("test:hash", exp_time, "field1") == [1] tests/test_hash.py:231: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5357: in hpexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697092319' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError __________________________ test_hpexpireat_conditions __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpireat_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1"}) future_exp_time = int( (datetime.now() + timedelta(milliseconds=500)).timestamp() * 1000 ) past_exp_time = int( (datetime.now() - timedelta(milliseconds=500)).timestamp() * 1000 ) > assert r.hpexpireat("test:hash", future_exp_time, "field1", xx=True) == [0] tests/test_hash.py:247: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5357: in hpexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697092531' 'XX' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ___________________ test_hpexpireat_nonexistent_key_or_field ___________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpireat_nonexistent_key_or_field(r): r.delete("test:hash") future_exp_time = int( (datetime.now() + timedelta(milliseconds=500)).timestamp() * 1000 ) > assert r.hpexpireat("test:hash", future_exp_time, "field1") == [] tests/test_hash.py:260: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5357: in hpexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697092642' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError _______________________ test_hpexpireat_multiple_fields ________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpireat_multiple_fields(r): r.delete("test:hash") r.hset( "test:hash", mapping={"field1": "value1", "field2": "value2", "field3": "value3"}, ) exp_time = int((datetime.now() + timedelta(milliseconds=400)).timestamp() * 1000) > assert r.hpexpireat("test:hash", exp_time, "field1", "field2") == [1, 1] tests/test_hash.py:273: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5357: in hpexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIREAT', with args beginning with: 'test:hash' '1734697092651' 'FIELDS' '2' 'field1' 'field2' valkey/connection.py:570: ResponseError ________________________ test_hpersist_multiple_fields _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpersist_multiple_fields(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) > r.hexpire("test:hash", 5000, "field1") tests/test_hash.py:294: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5156: in hexpire return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRE', with args beginning with: 'test:hash' '5000' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ________________________ test_hpersist_nonexistent_key _________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpersist_nonexistent_key(r): r.delete("test:hash") > assert r.hpersist("test:hash", "field1", "field2", "field3") == [] tests/test_hash.py:301: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5389: in hpersist return self.execute_command("HPERSIST", name, "FIELDS", len(fields), *fields) valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPERSIST', with args beginning with: 'test:hash' 'FIELDS' '3' 'field1' 'field2' 'field3' valkey/connection.py:570: ResponseError ______________ test_hexpiretime_multiple_fields_mixed_conditions _______________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpiretime_multiple_fields_mixed_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > r.hexpireat("test:hash", future_time, "field1") tests/test_hash.py:309: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698892' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError _______________________ test_hexpiretime_nonexistent_key _______________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hexpiretime_nonexistent_key(r): r.delete("test:hash") > assert r.hexpiretime("test:hash", "field1", "field2", "field3") == [] tests/test_hash.py:318: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5414: in hexpiretime return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIRETIME', with args beginning with: 'test:hash' 'FIELDS' '3' 'field1' 'field2' 'field3' valkey/connection.py:570: ResponseError ______________ test_hpexpiretime_multiple_fields_mixed_conditions ______________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpiretime_multiple_fields_mixed_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > r.hexpireat("test:hash", future_time, "field1") tests/test_hash.py:326: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698892' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError ______________________ test_hpexpiretime_nonexistent_key _______________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpexpiretime_nonexistent_key(r): r.delete("test:hash") > assert r.hpexpiretime("test:hash", "field1", "field2", "field3") == [] tests/test_hash.py:335: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5441: in hpexpiretime return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPEXPIRETIME', with args beginning with: 'test:hash' 'FIELDS' '3' 'field1' 'field2' 'field3' valkey/connection.py:570: ResponseError __________________ test_httl_multiple_fields_mixed_conditions __________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_httl_multiple_fields_mixed_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > r.hexpireat("test:hash", future_time, "field1") tests/test_hash.py:343: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698893' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError __________________________ test_httl_nonexistent_key ___________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_httl_nonexistent_key(r): r.delete("test:hash") > assert r.httl("test:hash", "field1", "field2", "field3") == [] tests/test_hash.py:352: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5468: in httl return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HTTL', with args beginning with: 'test:hash' 'FIELDS' '3' 'field1' 'field2' 'field3' valkey/connection.py:570: ResponseError _________________ test_hpttl_multiple_fields_mixed_conditions __________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpttl_multiple_fields_mixed_conditions(r): r.delete("test:hash") r.hset("test:hash", mapping={"field1": "value1", "field2": "value2"}) future_time = int((datetime.now() + timedelta(minutes=30)).timestamp()) > r.hexpireat("test:hash", future_time, "field1") tests/test_hash.py:360: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5286: in hexpireat return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HEXPIREAT', with args beginning with: 'test:hash' '1734698893' 'FIELDS' '1' 'field1' valkey/connection.py:570: ResponseError __________________________ test_hpttl_nonexistent_key __________________________ r = )>)> @skip_if_server_version_lt("7.3.240") def test_hpttl_nonexistent_key(r): r.delete("test:hash") > assert r.hpttl("test:hash", "field1", "field2", "field3") == [] tests/test_hash.py:369: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ valkey/commands/core.py:5495: in hpttl return self.execute_command( valkey/client.py:570: in execute_command response = conn.retry.call_with_retry( valkey/retry.py:62: in call_with_retry return do() valkey/client.py:571: in lambda: self._send_command_parse_response( valkey/client.py:543: in _send_command_parse_response return self.parse_response(conn, command_name, **options) valkey/client.py:590: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = disable_decoding = False def read_response( self, disable_decoding=False, *, disconnect_on_error=True, push_request=False, ): """Read the response from a previously sent command""" host_error = self._host_error() try: if self.protocol in ["3", 3] and not LIBVALKEY_AVAILABLE: response = self._parser.read_response( disable_decoding=disable_decoding, push_request=push_request ) else: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: if disconnect_on_error: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: if disconnect_on_error: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except BaseException: # Also by default close in case of BaseException. A lot of code # relies on this behaviour when doing Command/Response pairs. # See #1128. if disconnect_on_error: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): try: > raise response E valkey.exceptions.ResponseError: unknown command 'HPTTL', with args beginning with: 'test:hash' 'FIELDS' '3' 'field1' 'field2' 'field3' valkey/connection.py:570: ResponseError ______________ TestMultiprocessing.test_close_connection_in_child ______________ self = master_host = ('localhost', 6379) def test_close_connection_in_child(self, master_host): """ A connection owned by a parent and closed by a child doesn't destroy the file descriptors so a parent can still use it. """ conn = Connection(host=master_host[0], port=master_host[1]) conn.send_command("ping") assert conn.read_response() == b"PONG" def target(conn): conn.send_command("ping") assert conn.read_response() == b"PONG" conn.disconnect() proc = multiprocessing.Process(target=target, args=(conn,)) > proc.start() tests/test_multiprocessing.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b33d120>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24e51e770> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError _____________ TestMultiprocessing.test_close_connection_in_parent ______________ self = master_host = ('localhost', 6379) def test_close_connection_in_parent(self, master_host): """ A connection owned by a parent is unusable by a child if the parent (the owning process) closes the connection. """ conn = Connection(host=master_host[0], port=master_host[1]) conn.send_command("ping") assert conn.read_response() == b"PONG" def target(conn, ev): ev.wait() # the parent closed the connection. because it also created the # connection, the connection is shutdown and the child # cannot use it. with pytest.raises(ConnectionError): conn.send_command("ping") ev = multiprocessing.Event() proc = multiprocessing.Process(target=target, args=(conn, ev)) > proc.start() tests/test_multiprocessing.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e4130>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24e5c5c70> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError _______________________ TestMultiprocessing.test_pool[1] _______________________ self = max_connections = 1, master_host = ('localhost', 6379) @pytest.mark.parametrize("max_connections", [1, 2, None]) def test_pool(self, max_connections, master_host): """ A child will create its own connections when using a pool created by a parent. """ pool = ConnectionPool.from_url( f"valkey://{master_host[0]}:{master_host[1]}", max_connections=max_connections, ) conn = pool.get_connection("ping") main_conn_pid = conn.pid with exit_callback(pool.release, conn): conn.send_command("ping") assert conn.read_response() == b"PONG" def target(pool): with exit_callback(pool.disconnect): conn = pool.get_connection("ping") assert conn.pid != main_conn_pid with exit_callback(pool.release, conn): assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" proc = multiprocessing.Process(target=target, args=(pool,)) > proc.start() tests/test_multiprocessing.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e6250>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0dc460> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError _______________________ TestMultiprocessing.test_pool[2] _______________________ self = max_connections = 2, master_host = ('localhost', 6379) @pytest.mark.parametrize("max_connections", [1, 2, None]) def test_pool(self, max_connections, master_host): """ A child will create its own connections when using a pool created by a parent. """ pool = ConnectionPool.from_url( f"valkey://{master_host[0]}:{master_host[1]}", max_connections=max_connections, ) conn = pool.get_connection("ping") main_conn_pid = conn.pid with exit_callback(pool.release, conn): conn.send_command("ping") assert conn.read_response() == b"PONG" def target(pool): with exit_callback(pool.disconnect): conn = pool.get_connection("ping") assert conn.pid != main_conn_pid with exit_callback(pool.release, conn): assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" proc = multiprocessing.Process(target=target, args=(pool,)) > proc.start() tests/test_multiprocessing.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e5df0>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0dc9e0> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError _____________________ TestMultiprocessing.test_pool[None] ______________________ self = max_connections = None, master_host = ('localhost', 6379) @pytest.mark.parametrize("max_connections", [1, 2, None]) def test_pool(self, max_connections, master_host): """ A child will create its own connections when using a pool created by a parent. """ pool = ConnectionPool.from_url( f"valkey://{master_host[0]}:{master_host[1]}", max_connections=max_connections, ) conn = pool.get_connection("ping") main_conn_pid = conn.pid with exit_callback(pool.release, conn): conn.send_command("ping") assert conn.read_response() == b"PONG" def target(pool): with exit_callback(pool.disconnect): conn = pool.get_connection("ping") assert conn.pid != main_conn_pid with exit_callback(pool.release, conn): assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" proc = multiprocessing.Process(target=target, args=(pool,)) > proc.start() tests/test_multiprocessing.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e5760>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0dcf60> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError ________________ TestMultiprocessing.test_close_pool_in_main[1] ________________ self = max_connections = 1, master_host = ('localhost', 6379) @pytest.mark.parametrize("max_connections", [1, 2, None]) def test_close_pool_in_main(self, max_connections, master_host): """ A child process that uses the same pool as its parent isn't affected when the parent disconnects all connections within the pool. """ pool = ConnectionPool.from_url( f"valkey://{master_host[0]}:{master_host[1]}", max_connections=max_connections, ) conn = pool.get_connection("ping") assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" def target(pool, disconnect_event): conn = pool.get_connection("ping") with exit_callback(pool.release, conn): assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" disconnect_event.wait() assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" ev = multiprocessing.Event() proc = multiprocessing.Process(target=target, args=(pool, ev)) > proc.start() tests/test_multiprocessing.py:149: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e7f60>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0dd4e0> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError ________________ TestMultiprocessing.test_close_pool_in_main[2] ________________ self = max_connections = 2, master_host = ('localhost', 6379) @pytest.mark.parametrize("max_connections", [1, 2, None]) def test_close_pool_in_main(self, max_connections, master_host): """ A child process that uses the same pool as its parent isn't affected when the parent disconnects all connections within the pool. """ pool = ConnectionPool.from_url( f"valkey://{master_host[0]}:{master_host[1]}", max_connections=max_connections, ) conn = pool.get_connection("ping") assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" def target(pool, disconnect_event): conn = pool.get_connection("ping") with exit_callback(pool.release, conn): assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" disconnect_event.wait() assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" ev = multiprocessing.Event() proc = multiprocessing.Process(target=target, args=(pool, ev)) > proc.start() tests/test_multiprocessing.py:149: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e6930>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0ddd20> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError ______________ TestMultiprocessing.test_close_pool_in_main[None] _______________ self = max_connections = None, master_host = ('localhost', 6379) @pytest.mark.parametrize("max_connections", [1, 2, None]) def test_close_pool_in_main(self, max_connections, master_host): """ A child process that uses the same pool as its parent isn't affected when the parent disconnects all connections within the pool. """ pool = ConnectionPool.from_url( f"valkey://{master_host[0]}:{master_host[1]}", max_connections=max_connections, ) conn = pool.get_connection("ping") assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" def target(pool, disconnect_event): conn = pool.get_connection("ping") with exit_callback(pool.release, conn): assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" disconnect_event.wait() assert conn.send_command("ping") is None assert conn.read_response() == b"PONG" ev = multiprocessing.Event() proc = multiprocessing.Process(target=target, args=(pool, ev)) > proc.start() tests/test_multiprocessing.py:149: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0e56c0>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0de560> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError ____________________ TestMultiprocessing.test_valkey_client ____________________ self = r = )>)> def test_valkey_client(self, r): "A valkey client created in a parent can also be used in a child" assert r.ping() is True def target(client): assert client.ping() is True del client proc = multiprocessing.Process(target=target, args=(r,)) > proc.start() tests/test_multiprocessing.py:165: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) /usr/lib64/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) /usr/lib64/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib64/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib64/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = file = <_io.BytesIO object at 0x7fe24b0fdd00>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object .target at 0x7fe24b0defb0> E when serializing dict item '_target' E when serializing multiprocessing.context.Process state E when serializing multiprocessing.context.Process object /usr/lib64/python3.14/multiprocessing/reduction.py:60: PicklingError =========================== short test summary info ============================ FAILED tests/test_asyncio/test_commands.py::TestValkeyCommands::test_readonly_invalid_cluster_state[single] FAILED tests/test_asyncio/test_commands.py::TestValkeyCommands::test_readonly_invalid_cluster_state[pool] FAILED tests/test_asyncio/test_hash.py::test_hexpire_basic[single] - valkey.e... FAILED tests/test_asyncio/test_hash.py::test_hexpire_basic[pool] - valkey.exc... FAILED tests/test_asyncio/test_hash.py::test_hexpire_with_timedelta[single] FAILED tests/test_asyncio/test_hash.py::test_hexpire_with_timedelta[pool] - v... FAILED tests/test_asyncio/test_hash.py::test_hexpire_conditions[single] - val... FAILED tests/test_asyncio/test_hash.py::test_hexpire_conditions[pool] - valke... FAILED tests/test_asyncio/test_hash.py::test_hexpire_nonexistent_key_or_field[single] FAILED tests/test_asyncio/test_hash.py::test_hexpire_nonexistent_key_or_field[pool] FAILED tests/test_asyncio/test_hash.py::test_hexpire_multiple_fields[single] FAILED tests/test_asyncio/test_hash.py::test_hexpire_multiple_fields[pool] - ... FAILED tests/test_asyncio/test_hash.py::test_hpexpire_basic[single] - valkey.... FAILED tests/test_asyncio/test_hash.py::test_hpexpire_basic[pool] - valkey.ex... FAILED tests/test_asyncio/test_hash.py::test_hpexpire_with_timedelta[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpire_with_timedelta[pool] - ... FAILED tests/test_asyncio/test_hash.py::test_hpexpire_conditions[single] - va... FAILED tests/test_asyncio/test_hash.py::test_hpexpire_conditions[pool] - valk... FAILED tests/test_asyncio/test_hash.py::test_hpexpire_nonexistent_key_or_field[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpire_nonexistent_key_or_field[pool] FAILED tests/test_asyncio/test_hash.py::test_hpexpire_multiple_fields[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpire_multiple_fields[pool] FAILED tests/test_asyncio/test_hash.py::test_hexpireat_basic[single] - valkey... FAILED tests/test_asyncio/test_hash.py::test_hexpireat_basic[pool] - valkey.e... FAILED tests/test_asyncio/test_hash.py::test_hexpireat_with_datetime[single] FAILED tests/test_asyncio/test_hash.py::test_hexpireat_with_datetime[pool] - ... FAILED tests/test_asyncio/test_hash.py::test_hexpireat_conditions[single] - v... FAILED tests/test_asyncio/test_hash.py::test_hexpireat_conditions[pool] - val... FAILED tests/test_asyncio/test_hash.py::test_hexpireat_nonexistent_key_or_field[single] FAILED tests/test_asyncio/test_hash.py::test_hexpireat_nonexistent_key_or_field[pool] FAILED tests/test_asyncio/test_hash.py::test_hexpireat_multiple_fields[single] FAILED tests/test_asyncio/test_hash.py::test_hexpireat_multiple_fields[pool] FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_basic[single] - valke... FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_basic[pool] - valkey.... FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_with_datetime[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_with_datetime[pool] FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_conditions[single] - ... FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_conditions[pool] - va... FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_nonexistent_key_or_field[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_nonexistent_key_or_field[pool] FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_multiple_fields[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpireat_multiple_fields[pool] FAILED tests/test_asyncio/test_hash.py::test_hpersist_multiple_fields_mixed_conditions[single] FAILED tests/test_asyncio/test_hash.py::test_hpersist_multiple_fields_mixed_conditions[pool] FAILED tests/test_asyncio/test_hash.py::test_hexpiretime_multiple_fields_mixed_conditions[single] FAILED tests/test_asyncio/test_hash.py::test_hexpiretime_multiple_fields_mixed_conditions[pool] FAILED tests/test_asyncio/test_hash.py::test_hpexpiretime_multiple_fields_mixed_conditions[single] FAILED tests/test_asyncio/test_hash.py::test_hpexpiretime_multiple_fields_mixed_conditions[pool] FAILED tests/test_asyncio/test_hash.py::test_ttl_multiple_fields_mixed_conditions[single] FAILED tests/test_asyncio/test_hash.py::test_ttl_multiple_fields_mixed_conditions[pool] FAILED tests/test_asyncio/test_hash.py::test_pttl_multiple_fields_mixed_conditions[single] FAILED tests/test_asyncio/test_hash.py::test_pttl_multiple_fields_mixed_conditions[pool] FAILED tests/test_commands.py::TestValkeyCommands::test_readonly_invalid_cluster_state FAILED tests/test_hash.py::test_hexpire_basic - valkey.exceptions.ResponseErr... FAILED tests/test_hash.py::test_hexpire_with_timedelta - valkey.exceptions.Re... FAILED tests/test_hash.py::test_hexpire_conditions - valkey.exceptions.Respon... FAILED tests/test_hash.py::test_hexpire_nonexistent_key_or_field - valkey.exc... FAILED tests/test_hash.py::test_hexpire_multiple_fields - valkey.exceptions.R... FAILED tests/test_hash.py::test_hpexpire_basic - valkey.exceptions.ResponseEr... FAILED tests/test_hash.py::test_hpexpire_with_timedelta - valkey.exceptions.R... FAILED tests/test_hash.py::test_hpexpire_conditions - valkey.exceptions.Respo... FAILED tests/test_hash.py::test_hpexpire_nonexistent_key_or_field - valkey.ex... FAILED tests/test_hash.py::test_hpexpire_multiple_fields - valkey.exceptions.... FAILED tests/test_hash.py::test_hexpireat_basic - valkey.exceptions.ResponseE... FAILED tests/test_hash.py::test_hexpireat_with_datetime - valkey.exceptions.R... FAILED tests/test_hash.py::test_hexpireat_conditions - valkey.exceptions.Resp... FAILED tests/test_hash.py::test_hexpireat_nonexistent_key_or_field - valkey.e... FAILED tests/test_hash.py::test_hexpireat_multiple_fields - valkey.exceptions... FAILED tests/test_hash.py::test_hpexpireat_basic - valkey.exceptions.Response... FAILED tests/test_hash.py::test_hpexpireat_with_datetime - valkey.exceptions.... FAILED tests/test_hash.py::test_hpexpireat_conditions - valkey.exceptions.Res... FAILED tests/test_hash.py::test_hpexpireat_nonexistent_key_or_field - valkey.... FAILED tests/test_hash.py::test_hpexpireat_multiple_fields - valkey.exception... FAILED tests/test_hash.py::test_hpersist_multiple_fields - valkey.exceptions.... FAILED tests/test_hash.py::test_hpersist_nonexistent_key - valkey.exceptions.... FAILED tests/test_hash.py::test_hexpiretime_multiple_fields_mixed_conditions FAILED tests/test_hash.py::test_hexpiretime_nonexistent_key - valkey.exceptio... FAILED tests/test_hash.py::test_hpexpiretime_multiple_fields_mixed_conditions FAILED tests/test_hash.py::test_hpexpiretime_nonexistent_key - valkey.excepti... FAILED tests/test_hash.py::test_httl_multiple_fields_mixed_conditions - valke... FAILED tests/test_hash.py::test_httl_nonexistent_key - valkey.exceptions.Resp... FAILED tests/test_hash.py::test_hpttl_multiple_fields_mixed_conditions - valk... FAILED tests/test_hash.py::test_hpttl_nonexistent_key - valkey.exceptions.Res... FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_close_connection_in_child FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_close_connection_in_parent FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_pool[1] - _pi... FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_pool[2] - _pi... FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_pool[None] - ... FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_close_pool_in_main[1] FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_close_pool_in_main[2] FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_close_pool_in_main[None] FAILED tests/test_multiprocessing.py::TestMultiprocessing::test_valkey_client = 92 failed, 1881 passed, 485 skipped, 664 deselected, 1 xfailed, 22 xpassed in 97.17s (0:01:37) = RPM build errors: error: Bad exit status from /var/tmp/rpm-tmp.AYy5g9 (%check) Bad exit status from /var/tmp/rpm-tmp.AYy5g9 (%check) Finish: rpmbuild python-valkey-6.0.2-1.fc42.src.rpm Finish: build phase for python-valkey-6.0.2-1.fc42.src.rpm INFO: chroot_scan: 1 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1734696984.943096/root/var/log/dnf5.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names ERROR: Exception(/var/lib/copr-rpmbuild/results/python-valkey-6.0.2-1.fc42.src.rpm) Config(fedora-rawhide-x86_64) 1 minutes 55 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_failure=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot ERROR: Command failed: # /usr/bin/systemd-nspawn -q -M f1a22d95a8ef4f00ac13757e18eadcc2 -D /var/lib/mock/fedora-rawhide-x86_64-1734696984.943096/root -a -u mockbuild --capability=cap_ipc_lock --rlimit=RLIMIT_NOFILE=10240 --capability=cap_ipc_lock --bind=/tmp/mock-resolv.cnamxg5v:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;\007"' '--setenv=PS1= \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -ba --noprep --target x86_64 --nodeps /builddir/build/originals/python-valkey.spec' Copr build error: Build failed