pallets-eco / cachelib

Extract from werkzeug.cache
BSD 3-Clause "New" or "Revised" License
144 stars 44 forks source link

python-cachelib-0.13.0 fails to build with Python 3.13: pytest.PytestUnraisableExceptionWarning: Exception ignored in PyMapping_HasKeyString(); consider using PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() or PyMapping_GetItemString(): None #400

Open topazus opened 5 months ago

topazus commented 5 months ago
Some pytest output ```bash + /usr/bin/pytest -v -r s -k 'not Uwsgi and not DynamoDb and not MongoDb' ============================= test session starts ============================== platform linux -- Python 3.13.0b2, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0 configfile: setup.cfg testpaths: tests plugins: xprocess-1.0.2 collecting ... collected 160 items / 22 deselected / 1 skipped / 138 selected tests/test_base_cache.py::TestBaseCache::test_get PASSED [ 0%] tests/test_base_cache.py::TestBaseCache::test_delete PASSED [ 1%] tests/test_base_cache.py::TestBaseCache::test_get_many PASSED [ 2%] tests/test_base_cache.py::TestBaseCache::test_get_dict PASSED [ 2%] tests/test_base_cache.py::TestBaseCache::test_set PASSED [ 3%] tests/test_base_cache.py::TestBaseCache::test_add PASSED [ 4%] tests/test_base_cache.py::TestBaseCache::test_set_many PASSED [ 5%] tests/test_base_cache.py::TestBaseCache::test_delete_many PASSED [ 5%] tests/test_base_cache.py::TestBaseCache::test_has PASSED [ 6%] tests/test_base_cache.py::TestBaseCache::test_clear PASSED [ 7%] tests/test_base_cache.py::TestBaseCache::test_inc PASSED [ 7%] tests/test_base_cache.py::TestBaseCache::test_dec PASSED [ 8%] tests/test_file_system_cache.py::TestFileSystemCache::test_has[FileSystemCache] PASSED [ 9%] tests/test_file_system_cache.py::TestFileSystemCache::test_has[CustomSerializerCache] PASSED [ 10%] tests/test_file_system_cache.py::TestFileSystemCache::test_has[CustomHashingMethodCache] PASSED [ 10%] tests/test_file_system_cache.py::TestFileSystemCache::test_has[CustomDefaultHashingMethodCache] PASSED [ 11%] tests/test_file_system_cache.py::TestFileSystemCache::test_clear[FileSystemCache] PASSED [ 12%] tests/test_file_system_cache.py::TestFileSystemCache::test_clear[CustomSerializerCache] PASSED [ 13%] tests/test_file_system_cache.py::TestFileSystemCache::test_clear[CustomHashingMethodCache] PASSED [ 13%] tests/test_file_system_cache.py::TestFileSystemCache::test_clear[CustomDefaultHashingMethodCache] PASSED [ 14%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[FileSystemCache] PASSED [ 15%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[CustomSerializerCache] PASSED [ 15%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[CustomHashingMethodCache] PASSED [ 16%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get[CustomDefaultHashingMethodCache] PASSED [ 17%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[FileSystemCache] PASSED [ 18%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[CustomSerializerCache] PASSED [ 18%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[CustomHashingMethodCache] PASSED [ 19%] tests/test_file_system_cache.py::TestFileSystemCache::test_set_get_many[CustomDefaultHashingMethodCache] PASSED [ 20%] tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[FileSystemCache] PASSED [ 21%] tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[CustomSerializerCache] PASSED [ 21%] tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[CustomHashingMethodCache] PASSED [ 22%] tests/test_file_system_cache.py::TestFileSystemCache::test_get_dict[CustomDefaultHashingMethodCache] PASSED [ 23%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete[FileSystemCache] PASSED [ 23%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete[CustomSerializerCache] PASSED [ 24%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete[CustomHashingMethodCache] PASSED [ 25%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete[CustomDefaultHashingMethodCache] PASSED [ 26%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[FileSystemCache] PASSED [ 26%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[CustomSerializerCache] PASSED [ 27%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[CustomHashingMethodCache] PASSED [ 28%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many[CustomDefaultHashingMethodCache] PASSED [ 28%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[FileSystemCache] PASSED [ 29%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[CustomSerializerCache] PASSED [ 30%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[CustomHashingMethodCache] PASSED [ 31%] tests/test_file_system_cache.py::TestFileSystemCache::test_delete_many_ignore_errors[CustomDefaultHashingMethodCache] PASSED [ 31%] tests/test_file_system_cache.py::TestFileSystemCache::test_add[FileSystemCache] PASSED [ 32%] tests/test_file_system_cache.py::TestFileSystemCache::test_add[CustomSerializerCache] PASSED [ 33%] tests/test_file_system_cache.py::TestFileSystemCache::test_add[CustomHashingMethodCache] PASSED [ 34%] tests/test_file_system_cache.py::TestFileSystemCache::test_add[CustomDefaultHashingMethodCache] PASSED [ 34%] tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[FileSystemCache] PASSED [ 35%] tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[CustomSerializerCache] PASSED [ 36%] tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[CustomHashingMethodCache] PASSED [ 36%] tests/test_file_system_cache.py::TestFileSystemCache::test_inc_dec[CustomDefaultHashingMethodCache] PASSED [ 37%] tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[FileSystemCache] PASSED [ 38%] tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[CustomSerializerCache] PASSED [ 39%] tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[CustomHashingMethodCache] PASSED [ 39%] tests/test_file_system_cache.py::TestFileSystemCache::test_expiration[CustomDefaultHashingMethodCache] PASSED [ 40%] tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[FileSystemCache] PASSED [ 41%] tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[CustomSerializerCache] PASSED [ 42%] tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[CustomHashingMethodCache] PASSED [ 42%] tests/test_file_system_cache.py::TestFileSystemCache::test_EOFError[CustomDefaultHashingMethodCache] PASSED [ 43%] tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[FileSystemCache] PASSED [ 44%] tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[CustomSerializerCache] PASSED [ 44%] tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[CustomHashingMethodCache] PASSED [ 45%] tests/test_file_system_cache.py::TestFileSystemCache::test_threshold[CustomDefaultHashingMethodCache] PASSED [ 46%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[FileSystemCache] PASSED [ 47%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[CustomSerializerCache] PASSED [ 47%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[CustomHashingMethodCache] PASSED [ 48%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting[CustomDefaultHashingMethodCache] PASSED [ 49%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[FileSystemCache] PASSED [ 50%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[CustomSerializerCache] PASSED [ 50%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[CustomHashingMethodCache] PASSED [ 51%] tests/test_file_system_cache.py::TestFileSystemCache::test_file_counting_on_override[CustomDefaultHashingMethodCache] PASSED [ 52%] tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[FileSystemCache] PASSED [ 52%] tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[CustomSerializerCache] PASSED [ 53%] tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[CustomHashingMethodCache] PASSED [ 54%] tests/test_file_system_cache.py::TestFileSystemCache::test_prune_old_entries[CustomDefaultHashingMethodCache] PASSED [ 55%] tests/test_interface_uniformity.py::TestInterfaceUniformity::test_types_have_all_base_methods ERROR [ 55%] tests/test_memcached_cache.py::TestMemcachedCache::test_has FAILED [ 56%] tests/test_memcached_cache.py::TestMemcachedCache::test_clear FAILED [ 57%] tests/test_memcached_cache.py::TestMemcachedCache::test_set_get FAILED [ 57%] tests/test_memcached_cache.py::TestMemcachedCache::test_set_get_many FAILED [ 58%] tests/test_memcached_cache.py::TestMemcachedCache::test_get_dict FAILED [ 59%] tests/test_memcached_cache.py::TestMemcachedCache::test_delete FAILED [ 60%] tests/test_memcached_cache.py::TestMemcachedCache::test_delete_many FAILED [ 60%] tests/test_memcached_cache.py::TestMemcachedCache::test_delete_many_ignore_errors FAILED [ 61%] tests/test_memcached_cache.py::TestMemcachedCache::test_add FAILED [ 62%] tests/test_memcached_cache.py::TestMemcachedCache::test_inc_dec FAILED [ 63%] tests/test_memcached_cache.py::TestMemcachedCache::test_expiration FAILED [ 63%] tests/test_redis_cache.py::TestRedisCache::test_has[RedisCache] PASSED [ 64%] tests/test_redis_cache.py::TestRedisCache::test_has[CustomCache] PASSED [ 65%] tests/test_redis_cache.py::TestRedisCache::test_clear[RedisCache] PASSED [ 65%] tests/test_redis_cache.py::TestRedisCache::test_clear[CustomCache] PASSED [ 66%] tests/test_redis_cache.py::TestRedisCache::test_set_get[RedisCache] PASSED [ 67%] tests/test_redis_cache.py::TestRedisCache::test_set_get[CustomCache] PASSED [ 68%] tests/test_redis_cache.py::TestRedisCache::test_set_get_many[RedisCache] PASSED [ 68%] tests/test_redis_cache.py::TestRedisCache::test_set_get_many[CustomCache] PASSED [ 69%] tests/test_redis_cache.py::TestRedisCache::test_get_dict[RedisCache] PASSED [ 70%] tests/test_redis_cache.py::TestRedisCache::test_get_dict[CustomCache] PASSED [ 71%] tests/test_redis_cache.py::TestRedisCache::test_delete[RedisCache] PASSED [ 71%] tests/test_redis_cache.py::TestRedisCache::test_delete[CustomCache] PASSED [ 72%] tests/test_redis_cache.py::TestRedisCache::test_delete_many[RedisCache] PASSED [ 73%] tests/test_redis_cache.py::TestRedisCache::test_delete_many[CustomCache] PASSED [ 73%] tests/test_redis_cache.py::TestRedisCache::test_delete_many_ignore_errors[RedisCache] PASSED [ 74%] tests/test_redis_cache.py::TestRedisCache::test_delete_many_ignore_errors[CustomCache] PASSED [ 75%] tests/test_redis_cache.py::TestRedisCache::test_add[RedisCache] PASSED [ 76%] tests/test_redis_cache.py::TestRedisCache::test_add[CustomCache] PASSED [ 76%] tests/test_redis_cache.py::TestRedisCache::test_inc_dec[RedisCache] PASSED [ 77%] tests/test_redis_cache.py::TestRedisCache::test_inc_dec[CustomCache] PASSED [ 78%] tests/test_redis_cache.py::TestRedisCache::test_expiration[RedisCache] PASSED [ 78%] tests/test_redis_cache.py::TestRedisCache::test_expiration[CustomCache] PASSED [ 79%] tests/test_redis_cache.py::TestRedisCache::test_callable_key[RedisCache] PASSED [ 80%] tests/test_redis_cache.py::TestRedisCache::test_callable_key[CustomCache] PASSED [ 81%] tests/test_simple_cache.py::TestSimpleCache::test_clear[SimpleCache] PASSED [ 81%] tests/test_simple_cache.py::TestSimpleCache::test_clear[CustomCache] PASSED [ 82%] tests/test_simple_cache.py::TestSimpleCache::test_has[SimpleCache] PASSED [ 83%] tests/test_simple_cache.py::TestSimpleCache::test_has[CustomCache] PASSED [ 84%] tests/test_simple_cache.py::TestSimpleCache::test_set_get[SimpleCache] PASSED [ 84%] tests/test_simple_cache.py::TestSimpleCache::test_set_get[CustomCache] PASSED [ 85%] tests/test_simple_cache.py::TestSimpleCache::test_set_get_many[SimpleCache] PASSED [ 86%] tests/test_simple_cache.py::TestSimpleCache::test_set_get_many[CustomCache] PASSED [ 86%] tests/test_simple_cache.py::TestSimpleCache::test_get_dict[SimpleCache] PASSED [ 87%] tests/test_simple_cache.py::TestSimpleCache::test_get_dict[CustomCache] PASSED [ 88%] tests/test_simple_cache.py::TestSimpleCache::test_delete[SimpleCache] PASSED [ 89%] tests/test_simple_cache.py::TestSimpleCache::test_delete[CustomCache] PASSED [ 89%] tests/test_simple_cache.py::TestSimpleCache::test_delete_many[SimpleCache] PASSED [ 90%] tests/test_simple_cache.py::TestSimpleCache::test_delete_many[CustomCache] PASSED [ 91%] tests/test_simple_cache.py::TestSimpleCache::test_delete_many_ignore_errors[SimpleCache] PASSED [ 92%] tests/test_simple_cache.py::TestSimpleCache::test_delete_many_ignore_errors[CustomCache] PASSED [ 92%] tests/test_simple_cache.py::TestSimpleCache::test_add[SimpleCache] PASSED [ 93%] tests/test_simple_cache.py::TestSimpleCache::test_add[CustomCache] PASSED [ 94%] tests/test_simple_cache.py::TestSimpleCache::test_inc_dec[SimpleCache] PASSED [ 94%] tests/test_simple_cache.py::TestSimpleCache::test_inc_dec[CustomCache] PASSED [ 95%] tests/test_simple_cache.py::TestSimpleCache::test_expiration[SimpleCache] PASSED [ 96%] tests/test_simple_cache.py::TestSimpleCache::test_expiration[CustomCache] PASSED [ 97%] tests/test_simple_cache.py::TestSimpleCache::test_threshold[SimpleCache] PASSED [ 97%] tests/test_simple_cache.py::TestSimpleCache::test_threshold[CustomCache] PASSED [ 98%] tests/test_simple_cache.py::TestSimpleCache::test_prune_old_entries[SimpleCache] PASSED [ 99%] tests/test_simple_cache.py::TestSimpleCache::test_prune_old_entries[CustomCache] PASSED [100%] ==================================== ERRORS ==================================== __ ERROR at setup of TestInterfaceUniformity.test_types_have_all_base_methods __ cls = func = . at 0x7fb3569d1e40> when = 'setup' reraise = (, ) @classmethod def from_call( cls, func: "Callable[[], TResult]", when: "Literal['collect', 'setup', 'call', 'teardown']", reraise: Optional[ Union[Type[BaseException], Tuple[Type[BaseException], ...]] ] = None, ) -> "CallInfo[TResult]": """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None start = timing.time() precise_start = timing.perf_counter() try: > result: Optional[TResult] = func() /usr/lib/python3.13/site-packages/_pytest/runner.py:341: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.13/site-packages/_pytest/runner.py:262: in lambda: ihook(item=item, **kwds), when=when, reraise=reraise /usr/lib/python3.13/site-packages/pluggy/_hooks.py:493: in __call__ return self._hookexec(self.name, self._hookimpls, kwargs, firstresult) /usr/lib/python3.13/site-packages/pluggy/_manager.py:115: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) /usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:83: in pytest_runtest_setup yield from unraisable_exception_runtest_hook() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def unraisable_exception_runtest_hook() -> Generator[None, None, None]: with catch_unraisable_exception() as cm: yield if cm.unraisable: if cm.unraisable.err_msg is not None: err_msg = cm.unraisable.err_msg else: err_msg = "Exception ignored in" msg = f"{err_msg}: {cm.unraisable.object!r}\n\n" msg += "".join( traceback.format_exception( cm.unraisable.exc_type, cm.unraisable.exc_value, cm.unraisable.exc_traceback, ) ) > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) E pytest.PytestUnraisableExceptionWarning: Exception ignored in PyMapping_HasKeyString(); consider using PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() or PyMapping_GetItemString(): None E E Traceback (most recent call last): E File "/usr/lib64/python3.13/site-packages/pylibmc/client.py", line 142, in __init__ E super().__init__(servers=translate_server_specs(servers), E ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E binary=binary, E ^^^^^^^^^^^^^^ E username=username, password=password, E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E behaviors=_behaviors_numeric(behaviors)) E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E TypeError: 'NoneType' object is not subscriptable /usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning ---------------------------- Captured stdout setup ----------------------------- /builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0/.pytest_cache/d/.xprocess/redis$ redis-server --port 6360 process 'redis' started pid=292 292:C 06 Jun 2024 21:25:21.994 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 292:C 06 Jun 2024 21:25:21.994 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 292:C 06 Jun 2024 21:25:21.994 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=292, just started 292:C 06 Jun 2024 21:25:21.994 * Configuration loaded 292:M 06 Jun 2024 21:25:21.995 * monotonic clock: POSIX clock_gettime 292:M 06 Jun 2024 21:25:21.995 * Running mode=standalone, port=6360. 292:M 06 Jun 2024 21:25:21.995 * Server initialized 292:M 06 Jun 2024 21:25:21.995 * Ready to accept connections tcp redis process startup detected /builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0/.pytest_cache/d/.xprocess/pylibmc$ memcached -vv process 'pylibmc' started pid=298 slab class 1: chunk size 96 perslab 10922 slab class 2: chunk size 120 perslab 8738 slab class 3: chunk size 152 perslab 6898 slab class 4: chunk size 192 perslab 5461 slab class 5: chunk size 240 perslab 4369 slab class 6: chunk size 304 perslab 3449 slab class 7: chunk size 384 perslab 2730 slab class 8: chunk size 480 perslab 2184 slab class 9: chunk size 600 perslab 1747 slab class 10: chunk size 752 perslab 1394 slab class 11: chunk size 944 perslab 1110 slab class 12: chunk size 1184 perslab 885 slab class 13: chunk size 1480 perslab 708 slab class 14: chunk size 1856 perslab 564 slab class 15: chunk size 2320 perslab 451 slab class 16: chunk size 2904 perslab 361 slab class 17: chunk size 3632 perslab 288 slab class 18: chunk size 4544 perslab 230 slab class 19: chunk size 5680 perslab 184 slab class 20: chunk size 7104 perslab 147 slab class 21: chunk size 8880 perslab 118 slab class 22: chunk size 11104 perslab 94 slab class 23: chunk size 13880 perslab 75 slab class 24: chunk size 17352 perslab 60 slab class 25: chunk size 21696 perslab 48 slab class 26: chunk size 27120 perslab 38 slab class 27: chunk size 33904 perslab 30 slab class 28: chunk size 42384 perslab 24 slab class 29: chunk size 52984 perslab 19 slab class 30: chunk size 66232 perslab 15 slab class 31: chunk size 82792 perslab 12 slab class 32: chunk size 103496 perslab 10 slab class 33: chunk size 129376 perslab 8 slab class 34: chunk size 161720 perslab 6 slab class 35: chunk size 202152 perslab 5 slab class 36: chunk size 252696 perslab 4 slab class 37: chunk size 315872 perslab 3 slab class 38: chunk size 394840 perslab 2 slab class 39: chunk size 524288 perslab 2 <26 server listening (auto-negotiate) pylibmc process startup detected =================================== FAILURES =================================== _________________________ TestMemcachedCache.test_has __________________________ cls = func = . at 0x7fb35634b920> when = 'call' reraise = (, ) @classmethod def from_call( cls, func: "Callable[[], TResult]", when: "Literal['collect', 'setup', 'call', 'teardown']", reraise: Optional[ Union[Type[BaseException], Tuple[Type[BaseException], ...]] ] = None, ) -> "CallInfo[TResult]": """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None start = timing.time() precise_start = timing.perf_counter() try: > result: Optional[TResult] = func() /usr/lib/python3.13/site-packages/_pytest/runner.py:341: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.13/site-packages/_pytest/runner.py:262: in lambda: ihook(item=item, **kwds), when=when, reraise=reraise /usr/lib/python3.13/site-packages/pluggy/_hooks.py:493: in __call__ return self._hookexec(self.name, self._hookimpls, kwargs, firstresult) /usr/lib/python3.13/site-packages/pluggy/_manager.py:115: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) /usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:88: in pytest_runtest_call yield from unraisable_exception_runtest_hook() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def unraisable_exception_runtest_hook() -> Generator[None, None, None]: with catch_unraisable_exception() as cm: yield if cm.unraisable: if cm.unraisable.err_msg is not None: err_msg = cm.unraisable.err_msg else: err_msg = "Exception ignored in" msg = f"{err_msg}: {cm.unraisable.object!r}\n\n" msg += "".join( traceback.format_exception( cm.unraisable.exc_type, cm.unraisable.exc_value, cm.unraisable.exc_traceback, ) ) > warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) E pytest.PytestUnraisableExceptionWarning: Exception ignored in PyMapping_HasKeyString(); consider using PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() or PyMapping_GetItemString(): None E E Traceback (most recent call last): E File "/usr/lib64/python3.13/site-packages/pylibmc/client.py", line 142, in __init__ E super().__init__(servers=translate_server_specs(servers), E ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E binary=binary, E ^^^^^^^^^^^^^^ E username=username, password=password, E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E behaviors=_behaviors_numeric(behaviors)) E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E TypeError: 'NoneType' object is not subscriptable /usr/lib/python3.13/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning ---------------------------- Captured stdout setup ----------------------------- /builddir/build/BUILD/python-cachelib-0.13.0-build/cachelib-0.13.0/.pytest_cache/d/.xprocess/pylibmc$ memcached -vv process 'pylibmc' started pid=318 slab class 1: chunk size 96 perslab 10922 slab class 2: chunk size 120 perslab 8738 slab class 3: chunk size 152 perslab 6898 slab class 4: chunk size 192 perslab 5461 slab class 5: chunk size 240 perslab 4369 slab class 6: chunk size 304 perslab 3449 slab class 7: chunk size 384 perslab 2730 slab class 8: chunk size 480 perslab 2184 slab class 9: chunk size 600 perslab 1747 slab class 10: chunk size 752 perslab 1394 slab class 11: chunk size 944 perslab 1110 slab class 12: chunk size 1184 perslab 885 slab class 13: chunk size 1480 perslab 708 slab class 14: chunk size 1856 perslab 564 slab class 15: chunk size 2320 perslab 451 slab class 16: chunk size 2904 perslab 361 slab class 17: chunk size 3632 perslab 288 slab class 18: chunk size 4544 perslab 230 slab class 19: chunk size 5680 perslab 184 slab class 20: chunk size 7104 perslab 147 slab class 21: chunk size 8880 perslab 118 slab class 22: chunk size 11104 perslab 94 slab class 23: chunk size 13880 perslab 75 slab class 24: chunk size 17352 perslab 60 slab class 25: chunk size 21696 perslab 48 slab class 26: chunk size 27120 perslab 38 slab class 27: chunk size 33904 perslab 30 slab class 28: chunk size 42384 perslab 24 slab class 29: chunk size 52984 perslab 19 slab class 30: chunk size 66232 perslab 15 slab class 31: chunk size 82792 perslab 12 slab class 32: chunk size 103496 perslab 10 slab class 33: chunk size 129376 perslab 8 slab class 34: chunk size 161720 perslab 6 slab class 35: chunk size 202152 perslab 5 slab class 36: chunk size 252696 perslab 4 slab class 37: chunk size 315872 perslab 3 slab class 38: chunk size 394840 perslab 2 slab class 39: chunk size 524288 perslab 2 <26 server listening (auto-negotiate) pylibmc process startup detected ```

detailed build log: https://copr-be.cloud.fedoraproject.org/results/%40python/python3.13/fedora-rawhide-x86_64/07545359-python-cachelib/builder-live.log.gz

https://bugzilla.redhat.com/show_bug.cgi?id=2251780

Environment:

hroncok commented 4 months ago

I belive this should fix it: https://github.com/lericson/pylibmc/pull/292