|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 19s
CI / changes (pull_request) Successful in 21s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m11s
CI / backend-tests (pull_request) Successful in 17m17s
Изъян в собственном критерии приёмки #2950. Я записал: «в логе второго деплоя видна строка ожидания лока — то есть он реально ждал первого». Но flock при успешном захвате молчит, и такой строки не бывает. Критерий был неизмеримым: отличить «второй дождался первого» от «они просто разошлись по времени» нечем. Теперь сначала неблокирующая попытка: флаг свободен → «докер-лок свободен, взят сразу» флаг занят → «докер-лок занят соседним деплоем, жду (до 900с)…» потом «докер-лок получен через Nс ожидания» не дождались → прежнее сообщение с подсказкой про fuser, выход 1 Длительность печатается не для красоты: без неё непонятно, ждал деплой две секунды или четверть часа, а это разные диагнозы — разминулись случайно или взаимное исключение несёт реальную нагрузку. Гейт дополнен тремя проверками (flock -n, факт ожидания, длительность). Мутация «вернуть слепой блокирующий вызов» краснит его: 1 failed, контроль 9 passed rc=0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_2950_deploy_concurrency_group.py | ||