|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 19s
CI / changes (pull_request) Successful in 40s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Successful in 2m0s
CI Trade-In / backend-tests (pull_request) Successful in 8m5s
Инстанс camoufox поднимался на поставщика и не закрывался никогда: пять поставщиков давали пять вечных браузеров в контейнере с mem_limit 2560m. Прод 15.09-17.09: 5 живых простояли 2.4 ч прямо перед резким рестартом 16.09 19:08; медиана working_set 1494 МиБ при 3 живых, 1956 при 4, 2108 при 5. Потолок BROWSER_MAX_INSTANCES (по умолчанию 3) проверяется в _launch_browser, через который идут все запуски, включая фоновый retry. На потолке закрывается простаивающий инстанс другого поставщика: без context'а первым, по давности использования внутри класса. Занятый лок не трогается, если закрыть некого, запуск идёт сверх потолка с предупреждением. Слот резервируется на время запуска. _close_browser снимает инстанс со словарей до первого await и больше не сбрасывает пейсинг: это делают только собственный relaunch и смена прокси, как раньше. Четыре дефекта ревью ветки fix/3412-cian-instance-relaunch закрыты тестами, каждый краснеет при снятии своей части фикса. init: true у сервиса browser: PID 1 был python server.py и не собирал осиротевших детей закрытого браузера; прод 17.09 — 2296 процессов в Z за 14 ч. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Dockerfile | ||
| server.py | ||
| test_server.py | ||
| test_server_anchor_origin_switch.py | ||
| test_server_anchor_search.py | ||
| test_server_behaviour.py | ||
| test_server_challenge_reload.py | ||
| test_server_cian_captcha.py | ||
| test_server_cookie_domain.py | ||
| test_server_domclick_challenge.py | ||
| test_server_fetch_json.py | ||
| test_server_fetch_mode.py | ||
| test_server_http_status.py | ||
| test_server_instance_limit.py | ||
| test_server_nav_timing.py | ||
| test_server_no_proxy_refusal.py | ||
| test_server_pacing.py | ||
| test_server_pow_challenge.py | ||
| test_server_proxy_override.py | ||
| test_server_recycle.py | ||
| test_server_referer.py | ||
| test_server_resource_block.py | ||
| test_server_reuse_context.py | ||
| test_server_smoke.py | ||