|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 17s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 19s
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 / backend-tests (pull_request) Successful in 5m12s
Прод: 7193, 7218, 7264, 7302 (15-16.09) и 6608/6631/6643/6662 (10.09) — по
1600 попыток, 1-10 карточек, ~1599 блоков, status='done', по 70+ минут
каждый. В те же окна в логах tradein-browser шторм «browser launch failed …
InvalidIP» и «/fetch 503». 6885 (13.09) — те же 1600 попыток при
ban_kinds {"infra": 1591}, но 'banned'.
Корень — регресс #3288/#3367: record_block(kind != platform) уходит в
record_failure(), то есть только в знаменатель окна. Числитель доли растёт
лишь на platform, safety-net смотрит на platform-серию, счётчика серии
infra нет вовсе. Серия отказов сайдкара любой длины не рвала прогон ничем,
а финализатор #3367 при одной карточке ставил 'done'.
- BlockRatioBreaker: infra_streak_limit и счётчик серии infra. Серию гасит
любой ответ площадки — успех, её блок, 404. abort_reason() -> "infra_streak"
(проверяется первым), abort_explanation() называет эту величину.
- avito_detail_backfill: порог = max_consecutive_failures (дефолт 25) — тот же
разряд «отказ нашей стороны», что и отказы-не-блоки. На обрыве — mark_failed
«тракт недоступен: N отказов … подряд без единого ответа площадки», в
counters abort_reason=infra_streak и ban_kinds. Не 'banned' — площадка
молчала; не через mark_backfill_finished — там одна карточка даёт 'done'.
Тесты по значению: 1 успех + 1599 отказов сайдкара -> attempted=26,
mark_failed, abort_reason=infra_streak, ban_kinds {"infra": 25}; обрыв ровно
на 25-м (24 — нет); 24 infra + ответ площадки (успех/блок/404) + 24 — не
обрыв; 24 infra + ответ, трижды — снапшот пройден; 25% настоящих блоков —
не обрыв; прежний контроль #3367 (20 infra + 10 успехов -> done) зелёный.
Фальсификация: без проводки порога — «assert (1600, 1600) == (26, 26)»; без
сброса серии на блоке площадки — «abort_reason='infra_streak': 24 + ответ
площадки (platform) + 24»; без ветки финала — «прогон ушёл в
backfill-honest-status: там 1 карточка превращает шторм в 'done'».
Пункт 3 задачи (browser_unfit узлу, на котором сайдкар не поднял браузер)
не сделан: это вердикт пула прокси и протокол сайдкара, отдельная задача.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| exporters | ||
| matching | ||
| payments | ||
| region_boundaries | ||
| tgbot | ||
| __init__.py | ||
| account_quota.py | ||
| auth_session.py | ||
| backfill_block_breaker.py | ||
| brand.py | ||
| buildings_query.py | ||
| cache.py | ||
| cbr_macro.py | ||
| cian_price_history.py | ||
| cian_session.py | ||
| dadata.py | ||
| data_erasure.py | ||
| deal_city_key.py | ||
| domclick_session.py | ||
| domrf_kapremont_loader.py | ||
| dtp_index.py | ||
| dtp_stat_loader.py | ||
| estimator.py | ||
| fns_lookup.py | ||
| fns_opendata_loader.py | ||
| frt_mkd_loader.py | ||
| gar_flats_loader.py | ||
| geocoder.py | ||
| house_dedup_merge.py | ||
| house_imv_backfill.py | ||
| house_metadata.py | ||
| identity_store.py | ||
| image_sanitizer.py | ||
| location_index.py | ||
| product_handlers.py | ||
| proxy_egress.py | ||
| proxy_pool.py | ||
| proxy_rotation.py | ||
| regions.py | ||
| rosreestr_poll.py | ||
| sber_index.py | ||
| scheduler.py | ||
| scrape_runs.py | ||
| scraper_adapters.py | ||
| scraper_settings.py | ||
| search_query.py | ||
| street_scheme.py | ||
| user_events.py | ||
| yandex_address_backfill.py | ||
| yandex_price_history.py | ||
| yandex_session.py | ||
| zhkh_flats_loader.py | ||