Mock Version: 4.1 Mock Version: 4.1 Mock Version: 4.1 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-132339-9306/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Wrote: /builddir/build/SRPMS/python-redis-4.5.4-1.ocs23.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-132339-9306/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.1uHQXA + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf redis-py-4.5.4 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/redis-py-4.5.4.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd redis-py-4.5.4 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm tests/test_commands.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.cEOlVS + umask 022 + cd /builddir/build/BUILD + cd redis-py-4.5.4 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py311 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/OpenCloudOS/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement not satisfied: setuptools >= 40.8 Handling wheel from default build backend Requirement not satisfied: wheel Exiting dependency generation pass: build backend + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-redis-4.5.4-1.ocs23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-132339-9306/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.a7LTC9 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf redis-py-4.5.4 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/redis-py-4.5.4.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd redis-py-4.5.4 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm tests/test_commands.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.nGFOj3 + umask 022 + cd /builddir/build/BUILD + cd redis-py-4.5.4 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py311 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/OpenCloudOS/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 68.0.0) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.41.2) warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' HOOK STDOUT: running egg_info HOOK STDOUT: creating redis.egg-info HOOK STDOUT: writing redis.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to redis.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to redis.egg-info/requires.txt HOOK STDOUT: writing top-level names to redis.egg-info/top_level.txt HOOK STDOUT: writing manifest file 'redis.egg-info/SOURCES.txt' HOOK STDOUT: reading manifest file 'redis.egg-info/SOURCES.txt' HOOK STDOUT: reading manifest template 'MANIFEST.in' HOOK STDOUT: adding license file 'LICENSE' HOOK STDOUT: writing manifest file 'redis.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' Handling importlib-metadata >=1.0 ; python_version < "3.8" from wheel metadata: Requires-Dist Ignoring alien requirement: importlib-metadata >=1.0 ; python_version < "3.8" Handling typing-extensions ; python_version < "3.8" from wheel metadata: Requires-Dist Ignoring alien requirement: typing-extensions ; python_version < "3.8" Handling async-timeout >=4.0.2 ; python_version <= "3.11.2" from wheel metadata: Requires-Dist Requirement not satisfied: async-timeout >=4.0.2 ; python_version <= "3.11.2" Handling hiredis >=1.0.0 ; extra == 'hiredis' from wheel metadata: Requires-Dist Ignoring alien requirement: hiredis >=1.0.0 ; extra == 'hiredis' Handling cryptography >=36.0.1 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: cryptography >=36.0.1 ; extra == 'ocsp' Handling pyopenssl ==20.0.1 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: pyopenssl ==20.0.1 ; extra == 'ocsp' Handling requests >=2.26.0 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: requests >=2.26.0 ; extra == 'ocsp' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-redis-4.5.4-1.ocs23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-132339-9306/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ZWVa9E + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf redis-py-4.5.4 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/redis-py-4.5.4.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd redis-py-4.5.4 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm tests/test_commands.py + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.X3ykgc + umask 022 + cd /builddir/build/BUILD + cd redis-py-4.5.4 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py311 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/OpenCloudOS/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 68.0.0) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.41.2) warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' HOOK STDOUT: running egg_info HOOK STDOUT: creating redis.egg-info HOOK STDOUT: writing redis.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to redis.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to redis.egg-info/requires.txt HOOK STDOUT: writing top-level names to redis.egg-info/top_level.txt HOOK STDOUT: writing manifest file 'redis.egg-info/SOURCES.txt' HOOK STDOUT: reading manifest file 'redis.egg-info/SOURCES.txt' HOOK STDOUT: reading manifest template 'MANIFEST.in' HOOK STDOUT: adding license file 'LICENSE' HOOK STDOUT: writing manifest file 'redis.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' Handling importlib-metadata >=1.0 ; python_version < "3.8" from wheel metadata: Requires-Dist Ignoring alien requirement: importlib-metadata >=1.0 ; python_version < "3.8" Handling typing-extensions ; python_version < "3.8" from wheel metadata: Requires-Dist Ignoring alien requirement: typing-extensions ; python_version < "3.8" Handling async-timeout >=4.0.2 ; python_version <= "3.11.2" from wheel metadata: Requires-Dist Requirement satisfied: async-timeout >=4.0.2 ; python_version <= "3.11.2" (installed: async-timeout 4.0.3) Handling hiredis >=1.0.0 ; extra == 'hiredis' from wheel metadata: Requires-Dist Ignoring alien requirement: hiredis >=1.0.0 ; extra == 'hiredis' Handling cryptography >=36.0.1 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: cryptography >=36.0.1 ; extra == 'ocsp' Handling pyopenssl ==20.0.1 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: pyopenssl ==20.0.1 ; extra == 'ocsp' Handling requests >=2.26.0 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: requests >=2.26.0 ; extra == 'ocsp' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-redis-4.5.4-1.ocs23.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'], chrootPath='/var/lib/mock/dist-ocs23-build-132339-9306/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=86400uid=982gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.LDtiiD + umask 022 + cd /builddir/build/BUILD + cd redis-py-4.5.4 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv redis-4.5.4.dist-info/ removed 'redis-4.5.4.dist-info/METADATA' removed 'redis-4.5.4.dist-info/top_level.txt' removed 'redis-4.5.4.dist-info/LICENSE' removed directory 'redis-4.5.4.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py311 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/OpenCloudOS/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 68.0.0) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.41.2) warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' HOOK STDOUT: running egg_info HOOK STDOUT: writing redis.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to redis.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to redis.egg-info/requires.txt HOOK STDOUT: writing top-level names to redis.egg-info/top_level.txt HOOK STDOUT: reading manifest file 'redis.egg-info/SOURCES.txt' HOOK STDOUT: reading manifest template 'MANIFEST.in' HOOK STDOUT: adding license file 'LICENSE' HOOK STDOUT: writing manifest file 'redis.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.41.2) warning: no previously-included files found matching '__pycache__' warning: no previously-included files matching '*.pyc' found under directory 'tests' Handling importlib-metadata >=1.0 ; python_version < "3.8" from wheel metadata: Requires-Dist Ignoring alien requirement: importlib-metadata >=1.0 ; python_version < "3.8" Handling typing-extensions ; python_version < "3.8" from wheel metadata: Requires-Dist Ignoring alien requirement: typing-extensions ; python_version < "3.8" Handling async-timeout >=4.0.2 ; python_version <= "3.11.2" from wheel metadata: Requires-Dist Requirement satisfied: async-timeout >=4.0.2 ; python_version <= "3.11.2" (installed: async-timeout 4.0.3) Handling hiredis >=1.0.0 ; extra == 'hiredis' from wheel metadata: Requires-Dist Ignoring alien requirement: hiredis >=1.0.0 ; extra == 'hiredis' Handling cryptography >=36.0.1 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: cryptography >=36.0.1 ; extra == 'ocsp' Handling pyopenssl ==20.0.1 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: pyopenssl ==20.0.1 ; extra == 'ocsp' Handling requests >=2.26.0 ; extra == 'ocsp' from wheel metadata: Requires-Dist Ignoring alien requirement: requests >=2.26.0 ; extra == 'ocsp' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.XWCfw9 + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd redis-py-4.5.4 + mkdir -p /builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + TMPDIR=/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir + /usr/bin/python3 -m pip wheel --wheel-dir /builddir/build/BUILD/redis-py-4.5.4/pyproject-wheeldir --no-deps --use-pep517 --no-build-isolation --disable-pip-version-check --no-clean --progress-bar off --verbose . Processing /builddir/build/BUILD/redis-py-4.5.4 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) running dist_info creating /builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info writing /builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.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/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-modern-metadata-akq5nswt/redis-4.5.4.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: redis Building wheel for redis (pyproject.toml): started Running command Building wheel for redis (pyproject.toml) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/redis copying redis/credentials.py -> build/lib/redis copying redis/lock.py -> build/lib/redis copying redis/crc.py -> build/lib/redis copying redis/connection.py -> build/lib/redis copying redis/utils.py -> build/lib/redis copying redis/typing.py -> build/lib/redis copying redis/client.py -> build/lib/redis copying redis/__init__.py -> build/lib/redis copying redis/exceptions.py -> build/lib/redis copying redis/compat.py -> build/lib/redis copying redis/ocsp.py -> build/lib/redis copying redis/cluster.py -> build/lib/redis copying redis/backoff.py -> build/lib/redis copying redis/sentinel.py -> build/lib/redis copying redis/retry.py -> build/lib/redis creating build/lib/redis/commands copying redis/commands/core.py -> build/lib/redis/commands copying redis/commands/__init__.py -> build/lib/redis/commands copying redis/commands/redismodules.py -> build/lib/redis/commands copying redis/commands/cluster.py -> build/lib/redis/commands copying redis/commands/sentinel.py -> build/lib/redis/commands copying redis/commands/parser.py -> build/lib/redis/commands copying redis/commands/helpers.py -> build/lib/redis/commands creating build/lib/redis/asyncio copying redis/asyncio/lock.py -> build/lib/redis/asyncio copying redis/asyncio/connection.py -> build/lib/redis/asyncio copying redis/asyncio/utils.py -> build/lib/redis/asyncio copying redis/asyncio/client.py -> build/lib/redis/asyncio copying redis/asyncio/__init__.py -> build/lib/redis/asyncio copying redis/asyncio/cluster.py -> build/lib/redis/asyncio copying redis/asyncio/sentinel.py -> build/lib/redis/asyncio copying redis/asyncio/parser.py -> build/lib/redis/asyncio copying redis/asyncio/retry.py -> build/lib/redis/asyncio creating build/lib/redis/commands/bf copying redis/commands/bf/__init__.py -> build/lib/redis/commands/bf copying redis/commands/bf/commands.py -> build/lib/redis/commands/bf copying redis/commands/bf/info.py -> build/lib/redis/commands/bf creating build/lib/redis/commands/timeseries copying redis/commands/timeseries/utils.py -> build/lib/redis/commands/timeseries copying redis/commands/timeseries/__init__.py -> build/lib/redis/commands/timeseries copying redis/commands/timeseries/commands.py -> build/lib/redis/commands/timeseries copying redis/commands/timeseries/info.py -> build/lib/redis/commands/timeseries creating build/lib/redis/commands/graph copying redis/commands/graph/path.py -> build/lib/redis/commands/graph copying redis/commands/graph/edge.py -> build/lib/redis/commands/graph copying redis/commands/graph/__init__.py -> build/lib/redis/commands/graph copying redis/commands/graph/node.py -> build/lib/redis/commands/graph copying redis/commands/graph/query_result.py -> build/lib/redis/commands/graph copying redis/commands/graph/commands.py -> build/lib/redis/commands/graph copying redis/commands/graph/exceptions.py -> build/lib/redis/commands/graph copying redis/commands/graph/execution_plan.py -> build/lib/redis/commands/graph creating build/lib/redis/commands/search copying redis/commands/search/suggestion.py -> build/lib/redis/commands/search copying redis/commands/search/result.py -> build/lib/redis/commands/search copying redis/commands/search/reducers.py -> build/lib/redis/commands/search copying redis/commands/search/__init__.py -> build/lib/redis/commands/search copying redis/commands/search/commands.py -> build/lib/redis/commands/search copying redis/commands/search/querystring.py -> build/lib/redis/commands/search copying redis/commands/search/document.py -> build/lib/redis/commands/search copying redis/commands/search/field.py -> build/lib/redis/commands/search copying redis/commands/search/_util.py -> build/lib/redis/commands/search copying redis/commands/search/aggregation.py -> build/lib/redis/commands/search copying redis/commands/search/indexDefinition.py -> build/lib/redis/commands/search copying redis/commands/search/query.py -> build/lib/redis/commands/search creating build/lib/redis/commands/json copying redis/commands/json/path.py -> build/lib/redis/commands/json copying redis/commands/json/__init__.py -> build/lib/redis/commands/json copying redis/commands/json/commands.py -> build/lib/redis/commands/json copying redis/commands/json/_util.py -> build/lib/redis/commands/json copying redis/commands/json/decoders.py -> build/lib/redis/commands/json 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/redis copying build/lib/redis/credentials.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/lock.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/crc.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/connection.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/utils.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/typing.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/client.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/__init__.py -> build/bdist.linux-x86_64/wheel/redis creating build/bdist.linux-x86_64/wheel/redis/commands creating build/bdist.linux-x86_64/wheel/redis/commands/bf copying build/lib/redis/commands/bf/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/bf copying build/lib/redis/commands/bf/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/bf copying build/lib/redis/commands/bf/info.py -> build/bdist.linux-x86_64/wheel/redis/commands/bf creating build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/utils.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/timeseries/info.py -> build/bdist.linux-x86_64/wheel/redis/commands/timeseries copying build/lib/redis/commands/core.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/redismodules.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/cluster.py -> build/bdist.linux-x86_64/wheel/redis/commands creating build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/path.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/edge.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/node.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/query_result.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/exceptions.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph copying build/lib/redis/commands/graph/execution_plan.py -> build/bdist.linux-x86_64/wheel/redis/commands/graph creating build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/suggestion.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/result.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/reducers.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/querystring.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/document.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/field.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/_util.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/aggregation.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/indexDefinition.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/search/query.py -> build/bdist.linux-x86_64/wheel/redis/commands/search copying build/lib/redis/commands/sentinel.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/commands/parser.py -> build/bdist.linux-x86_64/wheel/redis/commands creating build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/path.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/__init__.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/commands.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/_util.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/json/decoders.py -> build/bdist.linux-x86_64/wheel/redis/commands/json copying build/lib/redis/commands/helpers.py -> build/bdist.linux-x86_64/wheel/redis/commands copying build/lib/redis/exceptions.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/compat.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/ocsp.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/cluster.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/backoff.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/sentinel.py -> build/bdist.linux-x86_64/wheel/redis copying build/lib/redis/retry.py -> build/bdist.linux-x86_64/wheel/redis creating build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/lock.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/connection.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/utils.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/client.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/__init__.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/cluster.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/sentinel.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/parser.py -> build/bdist.linux-x86_64/wheel/redis/asyncio copying build/lib/redis/asyncio/retry.py -> build/bdist.linux-x86_64/wheel/redis/asyncio running install_egg_info running egg_info writing redis.egg-info/PKG-INFO writing dependency_links to redis.egg-info/dependency_links.txt writing requirements to redis.egg-info/requires.txt writing top-level names to redis.egg-info/top_level.txt reading manifest file 'redis.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 'redis.egg-info/SOURCES.txt' Copying redis.egg-info to build/bdist.linux-x86_64/wheel/redis-4.5.4-py3.11.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/redis-4.5.4.dist-info/WHEEL creating '/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir/pip-wheel-xglshgam/.tmp-stp2uudz/redis-4.5.4-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'redis/__init__.py' adding 'redis/backoff.py' adding 'redis/client.py' adding 'redis/cluster.py' adding 'redis/compat.py' adding 'redis/connection.py' adding 'redis/crc.py' adding 'redis/credentials.py' adding 'redis/exceptions.py' adding 'redis/lock.py' adding 'redis/ocsp.py' adding 'redis/retry.py' adding 'redis/sentinel.py' adding 'redis/typing.py' adding 'redis/utils.py' adding 'redis/asyncio/__init__.py' adding 'redis/asyncio/client.py' adding 'redis/asyncio/cluster.py' adding 'redis/asyncio/connection.py' adding 'redis/asyncio/lock.py' adding 'redis/asyncio/parser.py' adding 'redis/asyncio/retry.py' adding 'redis/asyncio/sentinel.py' adding 'redis/asyncio/utils.py' adding 'redis/commands/__init__.py' adding 'redis/commands/cluster.py' adding 'redis/commands/core.py' adding 'redis/commands/helpers.py' adding 'redis/commands/parser.py' adding 'redis/commands/redismodules.py' adding 'redis/commands/sentinel.py' adding 'redis/commands/bf/__init__.py' adding 'redis/commands/bf/commands.py' adding 'redis/commands/bf/info.py' adding 'redis/commands/graph/__init__.py' adding 'redis/commands/graph/commands.py' adding 'redis/commands/graph/edge.py' adding 'redis/commands/graph/exceptions.py' adding 'redis/commands/graph/execution_plan.py' adding 'redis/commands/graph/node.py' adding 'redis/commands/graph/path.py' adding 'redis/commands/graph/query_result.py' adding 'redis/commands/json/__init__.py' adding 'redis/commands/json/_util.py' adding 'redis/commands/json/commands.py' adding 'redis/commands/json/decoders.py' adding 'redis/commands/json/path.py' adding 'redis/commands/search/__init__.py' adding 'redis/commands/search/_util.py' adding 'redis/commands/search/aggregation.py' adding 'redis/commands/search/commands.py' adding 'redis/commands/search/document.py' adding 'redis/commands/search/field.py' adding 'redis/commands/search/indexDefinition.py' adding 'redis/commands/search/query.py' adding 'redis/commands/search/querystring.py' adding 'redis/commands/search/reducers.py' adding 'redis/commands/search/result.py' adding 'redis/commands/search/suggestion.py' adding 'redis/commands/timeseries/__init__.py' adding 'redis/commands/timeseries/commands.py' adding 'redis/commands/timeseries/info.py' adding 'redis/commands/timeseries/utils.py' adding 'redis-4.5.4.dist-info/LICENSE' adding 'redis-4.5.4.dist-info/METADATA' adding 'redis-4.5.4.dist-info/WHEEL' adding 'redis-4.5.4.dist-info/top_level.txt' adding 'redis-4.5.4.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for redis (pyproject.toml): finished with status 'done' Created wheel for redis: filename=redis-4.5.4-py3-none-any.whl size=238846 sha256=3248885282bc626982bf18a064b0e700131fb7521267a7909d140292bce211b8 Stored in directory: /builddir/.cache/pip/wheels/9d/2d/49/8de490bc85744f6d18a8272fa6eee0db798c62716aef7b353a Successfully built redis + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.dVc7N9 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch ++ dirname /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch + cd redis-py-4.5.4 ++ ls /builddir/build/BUILD/redis-py-4.5.4/pyproject-wheeldir/redis-4.5.4-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=redis==4.5.4 + TMPDIR=/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch --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/redis-py-4.5.4/pyproject-wheeldir redis==4.5.4 Using pip 23.3.1 from /usr/lib/python3.11/site-packages/pip (python 3.11) Looking in links: /builddir/build/BUILD/redis-py-4.5.4/pyproject-wheeldir Processing ./pyproject-wheeldir/redis-4.5.4-py3-none-any.whl Installing collected packages: redis Successfully installed redis-4.5.4 + '[' -d /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/bin ']' + rm -f /builddir/build/BUILD/pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages ']' + site_dirs+=("/usr/lib/python3.11/site-packages") + '[' /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib64/python3.11/site-packages '!=' /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib64/python3.11/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.11/site-packages/redis-4.5.4.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages/redis-4.5.4.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/OpenCloudOS + /usr/bin/python3 -B /usr/lib/rpm/OpenCloudOS/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch --record /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages/redis-4.5.4.dist-info/RECORD --output /builddir/build/BUILD/pyproject-record + rm -fv /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages/redis-4.5.4.dist-info/RECORD removed '/builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages/redis-4.5.4.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages/redis-4.5.4.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages/redis-4.5.4.dist-info/REQUESTED' + /usr/bin/python3 /usr/lib/rpm/OpenCloudOS/pyproject_save_files.py --output-files /builddir/build/BUILD/pyproject-files --output-modules /builddir/build/BUILD/pyproject-modules --buildroot /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch --sitelib /usr/lib/python3.11/site-packages --sitearch /usr/lib64/python3.11/site-packages --python-version 3.11 --pyproject-record /builddir/build/BUILD/pyproject-record --prefix /usr redis + /usr/bin/find-debuginfo -j32 --strict-build-id -m -i --build-id-seed 4.5.4-1.ocs23 --unique-debug-suffix -4.5.4-1.ocs23.noarch --unique-debug-src-base python-redis-4.5.4-1.ocs23.noarch -S debugsourcefiles.list /builddir/build/BUILD/redis-py-4.5.4 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/OpenCloudOS/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/OpenCloudOS/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/OpenCloudOS/brp-mangle-shebangs + /usr/lib/rpm/OpenCloudOS/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11 using python3.11 + /usr/lib/rpm/OpenCloudOS/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.xakbjj + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd redis-py-4.5.4 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/OpenCloudOS/OpenCloudOS-hardened-ld -Wl,--build-id=sha1' + PATH=/builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib64/python3.11/site-packages:/builddir/build/BUILDROOT/python-redis-4.5.4-1.ocs23.noarch/usr/lib/python3.11/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/redis-py-4.5.4/.pyproject-builddir' + /usr/bin/pytest -m 'not onlycluster and not redismod and not ssl' -k 'not xinfo_consumers' + redis-server --enable-debug-command yes 1831925:C 22 Mar 2024 14:33:34.211 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1831925:C 22 Mar 2024 14:33:34.211 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=1831925, just started 1831925:C 22 Mar 2024 14:33:34.211 # Configuration loaded 1831925:M 22 Mar 2024 14:33:34.212 * Increased maximum number of open files to 10032 (it was originally set to 1024). 1831925:M 22 Mar 2024 14:33:34.212 * monotonic clock: POSIX clock_gettime 1831925:M 22 Mar 2024 14:33:34.212 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use 1831925:M 22 Mar 2024 14:33:34.212 # Failed listening on port 6379 (TCP), aborting. ============================= test session starts ============================== platform linux -- Python 3.11.6, pytest-7.4.0, pluggy-1.3.0 rootdir: /builddir/build/BUILD/redis-py-4.5.4 configfile: tox.ini plugins: asyncio-0.21.0 asyncio: mode=Mode.AUTO collected 3823 items / 1564 deselected / 2259 selected tests/test_command_parser.py ..... tests/test_connection.py ........s... tests/test_connection_pool.py ................................................FFFF..FF........... tests/test_credentials.py .......... tests/test_encoding.py ............ tests/test_function.py ....... tests/test_helpers.py ....... tests/test_lock.py ............................. tests/test_monitor.py ......s tests/test_multiprocessing.py ......... tests/test_pipeline.py ......................... tests/test_pubsub.py ........................................... tests/test_retry.py ................................................................... tests/test_scripting.py .................. tests/test_sentinel.py ............... tests/test_asyncio/test_commands.py ..ss..ss..ss..ss..ss..ss..ssssssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ssssss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_connection.py ..ss...sss.ss.....ss.s tests/test_asyncio/test_connection_pool.py ..ss..ss..ss....ssss....ssss..............................................FFssFException ignored in: Traceback (most recent call last): File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 463, in __del__ asyncio.get_running_loop().call_exception_handler(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: no running event loop FssFFssException ignored in: Traceback (most recent call last): File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 463, in __del__ asyncio.get_running_loop().call_exception_handler(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: no running event loop FFss..FFssFFss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_credentials.py ..ss..ss....ssss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_cwe_404.py canceled task, connection is left open with unread response canceled task, connection is left open with unread response .canceled task, connection is left open with unread response canceled task, connection is left open with unread response .canceled task, connection is left open with unread response canceled task, connection is left open with unread response .canceled task, connection is left open with unread response canceled task, connection is left open with unread response ..... tests/test_asyncio/test_encoding.py ..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_lock.py ..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_monitor.py ..ss..ss..ss..ss..ss..ssssss tests/test_asyncio/test_pipeline.py ..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_pubsub.py ..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss..ss....ssss....ssss..ss..ss tests/test_asyncio/test_retry.py ............................................................ tests/test_asyncio/test_scripting.py ..ss..ss..ss..ss..ss..ss..ss..ss tests/test_asyncio/test_sentinel.py ............... tests/test_asyncio/test_sentinel_managed_connection.py . =================================== FAILURES =================================== _____________ TestConnection.test_busy_loading_disconnects_socket ______________ self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() def test_busy_loading_disconnects_socket(self, r): """ If Redis raises a LOADING error, the connection should be disconnected and a BusyLoadingError raised """ with pytest.raises(redis.BusyLoadingError): > r.execute_command("DEBUG", "ERROR", "LOADING fake message") tests/test_connection_pool.py:492: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1258: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1259: in lambda: self._send_command_parse_response( redis/client.py:1235: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/connection.py:882: ResponseError _______ TestConnection.test_busy_loading_from_pipeline_immediate_command _______ self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() def test_busy_loading_from_pipeline_immediate_command(self, r): """ BusyLoadingErrors should raise from Pipelines that execute a command immediately, like WATCH does. """ pipe = r.pipeline() with pytest.raises(redis.BusyLoadingError): > pipe.immediate_execute_command("DEBUG", "ERROR", "LOADING fake message") tests/test_connection_pool.py:505: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1929: in immediate_execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1930: in lambda: self._send_command_parse_response( redis/client.py:1235: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:2049: in parse_response result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/connection.py:882: ResponseError ________________ TestConnection.test_busy_loading_from_pipeline ________________ self = Pipeline>> connection = Connection commands = [(('DEBUG', 'ERROR', 'LOADING fake message'), {})] raise_on_error = True def _execute_transaction(self, connection, commands, raise_on_error): cmds = chain([(("MULTI",), {})], commands, [(("EXEC",), {})]) all_cmds = connection.pack_commands( [args for args, options in cmds if EMPTY_RESPONSE not in options] ) connection.send_packed_command(all_cmds) errors = [] # parse off the response for MULTI # NOTE: we need to handle ResponseErrors here and continue # so that we read all the additional command messages from # the socket try: self.parse_response(connection, "_") except ResponseError as e: errors.append((0, e)) # and all the other commands for i, command in enumerate(commands): if EMPTY_RESPONSE in command[1]: errors.append((i, command[1][EMPTY_RESPONSE])) else: try: self.parse_response(connection, "_") except ResponseError as e: self.annotate_exception(e, i + 1, command[0]) errors.append((i, e)) # parse the EXEC. try: > response = self.parse_response(connection, "_") redis/client.py:1981: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:2049: in parse_response result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ExecAbortError: Transaction discarded because of previous errors. redis/connection.py:882: ExecAbortError During handling of the above exception, another exception occurred: self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() def test_busy_loading_from_pipeline(self, r): """ BusyLoadingErrors should be raised from a pipeline execution regardless of the raise_on_error flag. """ pipe = r.pipeline() pipe.execute_command("DEBUG", "ERROR", "LOADING fake message") with pytest.raises(redis.BusyLoadingError): > pipe.execute() tests/test_connection_pool.py:522: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:2109: in execute return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:2110: in lambda: execute(conn, stack, raise_on_error), redis/client.py:1984: in _execute_transaction raise errors[0][1] redis/client.py:1974: in _execute_transaction self.parse_response(connection, "_") redis/client.py:2049: in parse_response result = Redis.parse_response(self, connection, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ResponseError: Command # 1 (DEBUG ERROR LOADING fake message) of pipeline caused error: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/connection.py:882: ResponseError _____________________ TestConnection.test_read_only_error ______________________ self = r = Redis>> @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() def test_read_only_error(self, r): "READONLY errors get turned in ReadOnlyError exceptions" with pytest.raises(redis.ReadOnlyError): > r.execute_command("DEBUG", "ERROR", "READONLY blah blah") tests/test_connection_pool.py:533: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1258: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1259: in lambda: self._send_command_parse_response( redis/client.py:1235: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/connection.py:882: ResponseError ________________ TestConnection.test_connect_no_auth_configured ________________ self = r = Redis>> @skip_if_redis_enterprise() def test_connect_no_auth_configured(self, r): """ AuthenticationError should be raised when the server is not configured with auth but credentials are supplied by the user. """ # Redis < 6 with pytest.raises(redis.AuthenticationError): > r.execute_command( "DEBUG", "ERROR", "ERR Client sent AUTH, but no password is set" ) tests/test_connection_pool.py:563: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1258: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1259: in lambda: self._send_command_parse_response( redis/client.py:1235: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/connection.py:882: ResponseError ________ TestConnection.test_connect_invalid_auth_credentials_supplied _________ self = r = Redis>> @skip_if_redis_enterprise() def test_connect_invalid_auth_credentials_supplied(self, r): """ AuthenticationError should be raised when sending invalid username/password """ # Redis < 6 with pytest.raises(redis.AuthenticationError): > r.execute_command("DEBUG", "ERROR", "ERR invalid password") tests/test_connection_pool.py:584: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/client.py:1258: in execute_command return conn.retry.call_with_retry( redis/retry.py:46: in call_with_retry return do() redis/client.py:1259: in lambda: self._send_command_parse_response( redis/client.py:1235: in _send_command_parse_response return self.parse_response(conn, command_name, **options) redis/client.py:1275: in parse_response response = connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False def read_response(self, disable_decoding=False): """Read the response from a previously sent command""" host_error = self._host_error() try: response = self._parser.read_response(disable_decoding=disable_decoding) except socket.timeout: self.disconnect() raise TimeoutError(f"Timeout reading from {host_error}") except OSError as e: self.disconnect() raise ConnectionError( f"Error while reading from {host_error}" f" : {e.args}" ) except Exception: self.disconnect() raise if self.health_check_interval: self.next_health_check = time() + self.health_check_interval if isinstance(response, ResponseError): > raise response E redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/connection.py:882: ResponseError __ TestConnection.test_busy_loading_disconnects_socket[single-python-parser] ___ self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_busy_loading_disconnects_socket(self, r): """ If Redis raises a LOADING error, the connection should be disconnected and a BusyLoadingError raised """ with pytest.raises(redis.BusyLoadingError): > await r.execute_command("DEBUG", "ERROR", "LOADING fake message") tests/test_asyncio/test_connection_pool.py:567: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError ___ TestConnection.test_busy_loading_disconnects_socket[pool-python-parser] ____ self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_busy_loading_disconnects_socket(self, r): """ If Redis raises a LOADING error, the connection should be disconnected and a BusyLoadingError raised """ with pytest.raises(redis.BusyLoadingError): > await r.execute_command("DEBUG", "ERROR", "LOADING fake message") tests/test_asyncio/test_connection_pool.py:567: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError _ TestConnection.test_busy_loading_from_pipeline_immediate_command[single-python-parser] _ self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_busy_loading_from_pipeline_immediate_command(self, r): """ BusyLoadingErrors should raise from Pipelines that execute a command immediately, like WATCH does. """ pipe = r.pipeline() with pytest.raises(redis.BusyLoadingError): > await pipe.immediate_execute_command( "DEBUG", "ERROR", "LOADING fake message" ) tests/test_asyncio/test_connection_pool.py:581: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:1230: in immediate_execute_command return await asyncio.shield( redis/asyncio/client.py:1205: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:1359: in parse_response result = await super().parse_response(connection, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError _ TestConnection.test_busy_loading_from_pipeline_immediate_command[pool-python-parser] _ self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_busy_loading_from_pipeline_immediate_command(self, r): """ BusyLoadingErrors should raise from Pipelines that execute a command immediately, like WATCH does. """ pipe = r.pipeline() with pytest.raises(redis.BusyLoadingError): > await pipe.immediate_execute_command( "DEBUG", "ERROR", "LOADING fake message" ) tests/test_asyncio/test_connection_pool.py:581: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:1230: in immediate_execute_command return await asyncio.shield( redis/asyncio/client.py:1205: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:1359: in parse_response result = await super().parse_response(connection, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError _____ TestConnection.test_busy_loading_from_pipeline[single-python-parser] _____ self = Pipeline>> connection = Connection commands = [(('DEBUG', 'ERROR', 'LOADING fake message'), {})] raise_on_error = True async def _execute_transaction( # noqa: C901 self, connection: Connection, commands: CommandStackT, raise_on_error ): pre: CommandT = (("MULTI",), {}) post: CommandT = (("EXEC",), {}) cmds = (pre, *commands, post) all_cmds = connection.pack_commands( args for args, options in cmds if EMPTY_RESPONSE not in options ) await connection.send_packed_command(all_cmds) errors = [] # parse off the response for MULTI # NOTE: we need to handle ResponseErrors here and continue # so that we read all the additional command messages from # the socket try: await self.parse_response(connection, "_") except ResponseError as err: errors.append((0, err)) # and all the other commands for i, command in enumerate(commands): if EMPTY_RESPONSE in command[1]: errors.append((i, command[1][EMPTY_RESPONSE])) else: try: await self.parse_response(connection, "_") except ResponseError as err: self.annotate_exception(err, i + 1, command[0]) errors.append((i, err)) # parse the EXEC. try: > response = await self.parse_response(connection, "_") redis/asyncio/client.py:1283: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:1359: in parse_response result = await super().parse_response(connection, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ExecAbortError: Transaction discarded because of previous errors. redis/asyncio/connection.py:868: ExecAbortError The above exception was the direct cause of the following exception: self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_busy_loading_from_pipeline(self, r): """ BusyLoadingErrors should be raised from a pipeline execution regardless of the raise_on_error flag. """ pipe = r.pipeline() pipe.execute_command("DEBUG", "ERROR", "LOADING fake message") with pytest.raises(redis.BusyLoadingError): > await pipe.execute() tests/test_asyncio/test_connection_pool.py:600: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:1433: in execute return await asyncio.shield( redis/asyncio/client.py:1401: in _try_execute return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:1286: in _execute_transaction raise errors[0][1] from err redis/asyncio/client.py:1276: in _execute_transaction await self.parse_response(connection, "_") redis/asyncio/client.py:1359: in parse_response result = await super().parse_response(connection, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: Command # 1 (DEBUG ERROR LOADING fake message) of pipeline caused error: ('DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.',) redis/asyncio/connection.py:868: ResponseError ______ TestConnection.test_busy_loading_from_pipeline[pool-python-parser] ______ self = Pipeline>> connection = Connection commands = [(('DEBUG', 'ERROR', 'LOADING fake message'), {})] raise_on_error = True async def _execute_transaction( # noqa: C901 self, connection: Connection, commands: CommandStackT, raise_on_error ): pre: CommandT = (("MULTI",), {}) post: CommandT = (("EXEC",), {}) cmds = (pre, *commands, post) all_cmds = connection.pack_commands( args for args, options in cmds if EMPTY_RESPONSE not in options ) await connection.send_packed_command(all_cmds) errors = [] # parse off the response for MULTI # NOTE: we need to handle ResponseErrors here and continue # so that we read all the additional command messages from # the socket try: await self.parse_response(connection, "_") except ResponseError as err: errors.append((0, err)) # and all the other commands for i, command in enumerate(commands): if EMPTY_RESPONSE in command[1]: errors.append((i, command[1][EMPTY_RESPONSE])) else: try: await self.parse_response(connection, "_") except ResponseError as err: self.annotate_exception(err, i + 1, command[0]) errors.append((i, err)) # parse the EXEC. try: > response = await self.parse_response(connection, "_") redis/asyncio/client.py:1283: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:1359: in parse_response result = await super().parse_response(connection, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ExecAbortError: Transaction discarded because of previous errors. redis/asyncio/connection.py:868: ExecAbortError The above exception was the direct cause of the following exception: self = r = Redis>> @pytest.mark.onlynoncluster @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_busy_loading_from_pipeline(self, r): """ BusyLoadingErrors should be raised from a pipeline execution regardless of the raise_on_error flag. """ pipe = r.pipeline() pipe.execute_command("DEBUG", "ERROR", "LOADING fake message") with pytest.raises(redis.BusyLoadingError): > await pipe.execute() tests/test_asyncio/test_connection_pool.py:600: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:1433: in execute return await asyncio.shield( redis/asyncio/client.py:1401: in _try_execute return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:1286: in _execute_transaction raise errors[0][1] from err redis/asyncio/client.py:1276: in _execute_transaction await self.parse_response(connection, "_") redis/asyncio/client.py:1359: in parse_response result = await super().parse_response(connection, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: Command # 1 (DEBUG ERROR LOADING fake message) of pipeline caused error: ('DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server.',) redis/asyncio/connection.py:868: ResponseError __________ TestConnection.test_read_only_error[single-python-parser] ___________ self = r = Redis>> @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_read_only_error(self, r): """READONLY errors get turned in ReadOnlyError exceptions""" with pytest.raises(redis.ReadOnlyError): > await r.execute_command("DEBUG", "ERROR", "READONLY blah blah") tests/test_asyncio/test_connection_pool.py:611: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError ___________ TestConnection.test_read_only_error[pool-python-parser] ____________ self = r = Redis>> @skip_if_server_version_lt("2.8.8") @skip_if_redis_enterprise() async def test_read_only_error(self, r): """READONLY errors get turned in ReadOnlyError exceptions""" with pytest.raises(redis.ReadOnlyError): > await r.execute_command("DEBUG", "ERROR", "READONLY blah blah") tests/test_asyncio/test_connection_pool.py:611: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError _ TestConnection.test_connect_no_auth_supplied_when_required[single-python-parser] _ self = r = Redis>> @skip_if_redis_enterprise() async def test_connect_no_auth_supplied_when_required(self, r): """ AuthenticationError should be raised when the server requires a password but one isn't supplied. """ with pytest.raises(redis.AuthenticationError): > await r.execute_command( "DEBUG", "ERROR", "ERR Client sent AUTH, but no password is set" ) tests/test_asyncio/test_connection_pool.py:640: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError _ TestConnection.test_connect_no_auth_supplied_when_required[pool-python-parser] _ self = r = Redis>> @skip_if_redis_enterprise() async def test_connect_no_auth_supplied_when_required(self, r): """ AuthenticationError should be raised when the server requires a password but one isn't supplied. """ with pytest.raises(redis.AuthenticationError): > await r.execute_command( "DEBUG", "ERROR", "ERR Client sent AUTH, but no password is set" ) tests/test_asyncio/test_connection_pool.py:640: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError _ TestConnection.test_connect_invalid_password_supplied[single-python-parser] __ self = r = Redis>> @skip_if_redis_enterprise() async def test_connect_invalid_password_supplied(self, r): """AuthenticationError should be raised when sending the wrong password""" with pytest.raises(redis.AuthenticationError): > await r.execute_command("DEBUG", "ERROR", "ERR invalid password") tests/test_asyncio/test_connection_pool.py:648: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError __ TestConnection.test_connect_invalid_password_supplied[pool-python-parser] ___ self = r = Redis>> @skip_if_redis_enterprise() async def test_connect_invalid_password_supplied(self, r): """AuthenticationError should be raised when sending the wrong password""" with pytest.raises(redis.AuthenticationError): > await r.execute_command("DEBUG", "ERROR", "ERR invalid password") tests/test_asyncio/test_connection_pool.py:648: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ redis/asyncio/client.py:531: in execute_command return await asyncio.shield( redis/asyncio/client.py:505: in _try_send_command_parse_response return await conn.retry.call_with_retry( redis/asyncio/retry.py:59: in call_with_retry return await do() redis/asyncio/client.py:488: in _send_command_parse_response return await self.parse_response(conn, command_name, **options) redis/asyncio/client.py:544: in parse_response response = await connection.read_response() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Connection, disable_decoding = False timeout = None async def read_response( self, disable_decoding: bool = False, timeout: Optional[float] = None, ): """Read the response from a previously sent command""" read_timeout = timeout if timeout is not None else self.socket_timeout try: if read_timeout is not None: async with async_timeout(read_timeout): response = await self._parser.read_response( disable_decoding=disable_decoding ) else: response = await self._parser.read_response( disable_decoding=disable_decoding ) except asyncio.TimeoutError: if timeout is not None: # user requested timeout, return None return None # it was a self.socket_timeout error. await self.disconnect(nowait=True) raise TimeoutError(f"Timeout reading from {self.host}:{self.port}") except OSError as e: await self.disconnect(nowait=True) raise ConnectionError( f"Error while reading from {self.host}:{self.port} : {e.args}" ) except asyncio.CancelledError: # need this check for 3.7, where CancelledError # is subclass of Exception, not BaseException raise except Exception: 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 redis.exceptions.ResponseError: DEBUG command not allowed. If the enable-debug-command option is set to "local", you can run it from a local connection, otherwise you need to set this option in the configuration file, and then restart the server. redis/asyncio/connection.py:868: ResponseError =============================== warnings summary =============================== tests/test_pubsub.py:604 /builddir/build/BUILD/redis-py-4.5.4/tests/test_pubsub.py:604: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.timeout(30, method="thread") tests/test_pubsub.py:615 /builddir/build/BUILD/redis-py-4.5.4/tests/test_pubsub.py:615: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.timeout(5, method="thread") tests/test_asyncio/test_connection.py::test_connect_timeout_error_without_retry tests/test_asyncio/test_cwe_404.py::test_standalone[0.5] tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[0.05] tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[0.5] tests/test_asyncio/test_lock.py::TestLock::test_extending_lock_no_longer_owned_raises_error[single-python-parser] tests/test_asyncio/test_pipeline.py::TestPipeline::test_exec_error_in_no_transaction_pipeline[pool-python-parser] /usr/lib/python3.11/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: Traceback (most recent call last): File "/usr/lib64/python3.11/asyncio/streams.py", line 395, in __del__ self.close() File "/usr/lib64/python3.11/asyncio/streams.py", line 343, in close return self._transport.close() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/asyncio/selector_events.py", line 860, in close self._loop.call_soon(self._call_connection_lost, None) File "/usr/lib64/python3.11/asyncio/base_events.py", line 761, in call_soon self._check_closed() File "/usr/lib64/python3.11/asyncio/base_events.py", line 519, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) tests/test_asyncio/test_connection.py::test_connection_disconect_race[PythonParser] /builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/connection.py:736: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited self._writer.close() # type: ignore[union-attr] Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[0.05] tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[0.5] tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[1] tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[2] /builddir/build/BUILD/redis-py-4.5.4/tests/test_asyncio/test_cwe_404.py:110: RuntimeWarning: coroutine 'Pipeline.reset' was never awaited pipe.reset() Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. tests/test_asyncio/test_cwe_404.py::test_standalone_pipeline[2] /usr/lib/python3.11/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: Traceback (most recent call last): File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 1433, in execute return await asyncio.shield( ^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 1401, in _try_execute return await conn.retry.call_with_retry( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/retry.py", line 59, in call_with_retry return await do() ^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 1266, in _execute_transaction await self.parse_response(connection, "_") File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 1359, in parse_response result = await super().parse_response(connection, command_name, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/client.py", line 544, in parse_response response = await connection.read_response() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/connection.py", line 840, in read_response response = await self._parser.read_response( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/connection.py", line 264, in read_response response = await self._read_response(disable_decoding=disable_decoding) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/connection.py", line 272, in _read_response raw = await self._readline() ^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/redis-py-4.5.4/redis/asyncio/connection.py", line 346, in _readline data = await self._stream.readline() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/asyncio/streams.py", line 548, in readline line = await self.readuntil(sep) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/asyncio/streams.py", line 640, in readuntil await self._wait_for_data('readuntil') File "/usr/lib64/python3.11/asyncio/streams.py", line 511, in _wait_for_data raise RuntimeError( RuntimeError: readuntil() called while another coroutine is already waiting for incoming data During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib64/python3.11/asyncio/streams.py", line 395, in __del__ self.close() File "/usr/lib64/python3.11/asyncio/streams.py", line 343, in close return self._transport.close() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/asyncio/selector_events.py", line 860, in close self._loop.call_soon(self._call_connection_lost, None) File "/usr/lib64/python3.11/asyncio/base_events.py", line 761, in call_soon self._check_closed() File "/usr/lib64/python3.11/asyncio/base_events.py", line 519, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) tests/test_asyncio/test_encoding.py::TestEncoding::test_memoryview_encoding_and_decoding[single-python-parser] /usr/lib/python3.11/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/_pytest/fixtures.py", line 596, in _get_active_fixturedef return self._fixture_defs[argname] ~~~~~~~~~~~~~~~~~~^^^^^^^^^ KeyError: 'request' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib64/python3.11/asyncio/streams.py", line 395, in __del__ self.close() File "/usr/lib64/python3.11/asyncio/streams.py", line 343, in close return self._transport.close() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/asyncio/selector_events.py", line 860, in close self._loop.call_soon(self._call_connection_lost, None) File "/usr/lib64/python3.11/asyncio/base_events.py", line 761, in call_soon self._check_closed() File "/usr/lib64/python3.11/asyncio/base_events.py", line 519, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_connection_pool.py::TestConnection::test_busy_loading_disconnects_socket FAILED tests/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline_immediate_command FAILED tests/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline FAILED tests/test_connection_pool.py::TestConnection::test_read_only_error - ... FAILED tests/test_connection_pool.py::TestConnection::test_connect_no_auth_configured FAILED tests/test_connection_pool.py::TestConnection::test_connect_invalid_auth_credentials_supplied FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_busy_loading_disconnects_socket[single-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_busy_loading_disconnects_socket[pool-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline_immediate_command[single-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline_immediate_command[pool-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline[single-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_busy_loading_from_pipeline[pool-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_read_only_error[single-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_read_only_error[pool-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_connect_no_auth_supplied_when_required[single-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_connect_no_auth_supplied_when_required[pool-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_connect_invalid_password_supplied[single-python-parser] FAILED tests/test_asyncio/test_connection_pool.py::TestConnection::test_connect_invalid_password_supplied[pool-python-parser] = 18 failed, 1333 passed, 908 skipped, 1564 deselected, 15 warnings in 330.19s (0:05:30) = Exception ignored in: Traceback (most recent call last): File "/usr/lib64/python3.11/asyncio/streams.py", line 395, in __del__ self.close() File "/usr/lib64/python3.11/asyncio/streams.py", line 343, in close return self._transport.close() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/asyncio/selector_events.py", line 860, in close self._loop.call_soon(self._call_connection_lost, None) File "/usr/lib64/python3.11/asyncio/base_events.py", line 761, in call_soon self._check_closed() File "/usr/lib64/python3.11/asyncio/base_events.py", line 519, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed error: Bad exit status from /var/tmp/rpm-tmp.xakbjj (%check) Bad exit status from /var/tmp/rpm-tmp.xakbjj (%check) RPM build errors: Child return code was: 1 EXCEPTION: [Error('Command failed: \n # bash --login -c /usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec\n', 1)] Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/mockbuild/util.py", line 597, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) mockbuild.exception.Error: Command failed: # bash --login -c /usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-redis.spec