gendesign/backend/tests/ops
bot-backend 6caaa2bf88
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
fix(ci): ожидание докер-лока оставляет след в логе (#2950)
Изъян в собственном критерии приёмки #2950. Я записал: «в логе второго деплоя
видна строка ожидания лока — то есть он реально ждал первого». Но flock при
успешном захвате молчит, и такой строки не бывает. Критерий был неизмеримым:
отличить «второй дождался первого» от «они просто разошлись по времени» нечем.

Теперь сначала неблокирующая попытка:

  флаг свободен  → «докер-лок свободен, взят сразу»
  флаг занят     → «докер-лок занят соседним деплоем, жду (до 900с)…»
                   потом «докер-лок получен через Nс ожидания»
  не дождались   → прежнее сообщение с подсказкой про fuser, выход 1

Длительность печатается не для красоты: без неё непонятно, ждал деплой две
секунды или четверть часа, а это разные диагнозы — разминулись случайно или
взаимное исключение несёт реальную нагрузку.

Гейт дополнен тремя проверками (flock -n, факт ожидания, длительность).
Мутация «вернуть слепой блокирующий вызов» краснит его: 1 failed, контроль
9 passed rc=0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 13:17:51 +05:00
..
__init__.py fix(ci): прод-деплои в одну группу concurrency — прун одного убивал pull другого (#2950) (#2952) 2026-08-20 07:47:48 +00:00
test_2950_deploy_concurrency_group.py fix(ci): ожидание докер-лока оставляет след в логе (#2950) 2026-08-20 13:17:51 +05:00