Python 3.14.7: remote_exec после замены libpython на диске. Практическая проверка отделяет симптом от соседних причин: безопасный fixture, опровергающий control, измеримая развилка, стоп-линия и минимальный пакет для поддержки.
Симптом, а не диагноз
Запрос ограничен формулировкой «как проверить sys.remote_exec после удаления или замены libpython на диске в Python 3.14.7». Наблюдаемый симптом: разрешённое диагностическое подключение к собственному процессу не находит writable mapping, если файл libpython уже заменён при обновлении. Официально подтверждена более узкая граница: на Linux sys.remote_exec умеет находить удалённую writable memory, когда libpython был удалён или заменён на диске. Это не означает, что любой похожий crash, warning, hang или неверный результат вызван именно этой ошибкой. Сначала запишите точную версию Python, режим сборки, платформу и один ожидаемый переход состояния; обновление всей среды не должно быть первым действием.
Минимальный воспроизводимый стенд
Для паспорта T21-03 выполните только такой опыт: поднять отдельный тестовый Python-процесс, сохранить его PID, атомарно переименовать копию libpython внутри одноразового root и выполнить только безвредную remote-команду, создающую marker в памяти. Входы должны быть синтетическими, а рискованный код — жить в отдельном child process, контейнере, pty или temp root. До запуска задайте deadline, лимит памяти и допустимые файлы. Не используйте реальные архивы, токены, адреса, пользовательские документы или production PID. Если нужный backend, libc, compiler или GUI недоступен, зафиксируйте environment blocker: это честнее, чем имитировать результат.
Наблюдения по строкам
Опровергающая ветка: такой же процесс с неизменной копией libpython и попытка к уже завершённому PID, которая обязана дать отказ. Наблюдения пишутся строго как «состояние файла | PID state | найденный mapping | результат attach | marker | stderr class». Сначала выполните control A, затем проблемный case B, полностью пересоздайте fixture и повторите A2. Если A2 расходится с A, опыт загрязнён cache, locale, descriptor, signal state или environment. Пустая ячейка не равна нулю, а текст exception не заменяет его класс. Такое разделение не позволяет объявить исправление только потому, что один запуск случайно не упал.
Критерий прохождения
Зелёная ветка разрешена только когда attach к живому тестовому процессу проходит и после замены файла, а ветка с завершённым PID остаётся отказом. Если оба варианта ведут себя одинаково плохо, чините fixture, а не Python. Если control чист, но симптом не воспроизводится, итог — not reproduced в конкретной конфигурации, не доказательство отсутствия дефекта вообще. Сравнение 3.14.6 и 3.14.7 допустимо лишь с одинаковым input и limits. Результат относится к issue-boundary, а не к скорости, безопасности или совместимости всего приложения.
Обратимость опыта
Стоп-линия: работать только со своим child PID и остановиться при любом запросе прав или обращении к чужому процессу. Остановитесь также при записи вне temp root, внешнем сетевом запросе, появлении приватных данных, неконтролируемом descendant process или превышении deadline. Не получайте зелёный статус отключением проверок, catch-all обработчиком, бесконечным retry или повышением лимитов после сбоя. Возврат должен быть проверяемым: завершить child, удалить копию libpython и убедиться, что не осталось marker-файлов или ptrace-настроек. После этого ещё раз снимите process/file inventory и убедитесь, что состояние совпало с baseline.
Доказательства без лишних данных
Для issue #151029 достаточно передать: Python build, Linux kernel, способ загрузки libpython, состояние maps с обезличенным корнем, PID state и точный класс ошибки. Добавьте московский timestamp, labels A/B/A2 и точный критерий «{topic['green']}». Абсолютные пути, PIDs, hostnames, environment dumps, core dumps и содержимое рабочих файлов удалите или замените метками. Официальные источники подтверждают изменение «{topic['boundary']}», но не популярность запроса, позиции в поиске или готовность вашей системы. Такой пакет позволяет повторить один переход без доступа к инфраструктуре.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Python 3.14.7 release проверено 2026-08-29
- Python 3.14.7 changelog проверено 2026-08-29
- CPython issue #151029 проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.