Версия: python3-module-CacheMan.git=2.1.0-alt1 Тестовые стенды: p10-workstation-x86-64 p10-workstation-i586 p10-kworkstation-x86-64 p10-education-x86-64-kde p10-edication-x86-64 Любой скрипт на python выполняемый с использованием этого модуля завершается с ошибкой (смотреть файл). Точно такая же ошибка указана в issue в официальном репозитории Git: https://github.com/MSeal/py_cache_manager/issues/1 Для появления ошибки нужно запустить код, в котором используется этот модуль. Код для тестирования взят с официального README.md из раздела How to use: https://github.com/MSeal/py_cache_manager/blob/master/README.md Результат: некорректное завершение программы. Ожидаемый результат: корректное завершение программы
Created attachment 9626 [details] Код, которым была вызвана ошибка Прикрепляю дополнительный файл, которым была вызвана ошибка
Created attachment 9627 [details] Вывод программы
*** Bug 40827 has been marked as a duplicate of this bug. ***
Проверено актуальное состояние пакета. В Sisyphus и p11 опубликован python3-module-CacheMan-2.1.0-alt3. В alt2 была добавлена совместимость с Python 3.10 и включены тесты, в alt3 — совместимость с Python 3.13. Однако эти изменения не исправляют цепочку, указанную в приложенном traceback. В текущих исходниках CacheManager.__del__() по-прежнему вызывает save_all_cache_contents(), а pickle_pre_saver() использует встроенную функцию open(). Во время завершения интерпретатора эта функция уже может быть удалена из пространства имён, что соответствует исходной ошибке: NameError: name 'open' is not defined. Следовательно, подтверждения исправления нет, а потенциально проблемный код сохраняется. Предлагаю оставить баг открытым. Для исправления следует отказаться от сохранения данных через __del__ при завершении интерпретатора либо сохранить необходимые ссылки до начала финализации модулей.
Воспроизводится на python3-module-CacheMan-2.1.0-alt3 с python3-3.14.7-alt1 (Sisyphus x86_64 от 2026-09-16), скрипт из вложения 9626: $ python3 test.py my_value Exception ignored while calling deallocator <function CacheManager.__del__ at 0x7f8652f33cc0>: Traceback (most recent call last): File "/usr/lib/python3/site-packages/cacheman/cacher.py", line 28, in __del__ ... File "/usr/lib/python3/site-packages/cacheman/registers.py", line 138, in pickle_pre_saver NameError: name 'open' is not defined Exception ignored while calling deallocator <function CacheWrap.__del__ at 0x7f8652f30b40>: Traceback (most recent call last): File "/usr/lib/python3/site-packages/cacheman/cachewrap.py", line 47, in __del__ ImportError: sys.meta_path is None, Python is likely shutting down Код возврата 0, данные сохраняются (второй запуск читает my_value), но CacheManager.__del__ вызывает save_all_cache_contents() уже во время финализации интерпретатора, когда builtins.open недоступен. Апстрим (https://github.com/MSeal/py_cache_manager/issues/1, 2021) не отвечает, релизов после 2.1.0 нет. Вариант лечения на стороне пакета: в cacher.py регистрировать сохранение через atexit.register(manager.save_all_cache_contents) вместо __del__ (или ловить NameError/ImportError в __del__). Перевешиваю на сопровождающего.
Единственный конечный пользователь этого пакета - пакет outwiker (через пакет python3-module-cyhunspell). Прошу qa-team проверить, возникают ли проблемы у outwiker в плане проверки орфографии.