fix(gisogd66): битый 500-сегмент портала — no-retry карточек, circuit breaker, периодический commit #2371

Merged
bot-backend merged 1 commit from fix/gisogd66-broken-segment into main 2026-07-04 04:33:45 +00:00
Collaborator

Что

Hotfix лоадера из #2370 по итогам холодного прод-прогона. Прогон вскрыл: сегмент старых ЕКБ-ключей (~100001007xxx) детерминированно 500-ит на карточках (портал-сайд, воспроизводится с любого IP; свежие ключи работают), лоадер жёг ~12с/карточку на трёх 5xx-ретраях (181 фейл за 40 мин), а единственный commit в конце прогона терял всю работу при soft_time_limit-kill. Таск снят revoke'ом.

  • fetch_doc_card: retries_5xx=0 — одна попытка, без backoff (5xx карточки = битые записи, не транзиент); список групп — с прежними ретраями; сетевые Timeout/Transport-ретраи не тронуты
  • Периодический commit: каждые 200 строк + после каждой (schema, group) — партиал переживает kill; SAVEPOINT per-row сохранён (ревью подтвердило: commit вне nested-блока, оркестровка чистая)
  • SCHEMAS регион-первый: agate_sverdregion стабилен целиком и покрывает ЕКБ-доки через агрегат; agate_ekbgo вторым как freshness-энхансер
  • Circuit breaker: 50 подряд card-фейлов → abort группы (group_aborted), прекращает HTTP (51-й ключ не запрашивается), успех/skip сбрасывает; новый счётчик card_failed

Проверки

  • 32 gisogd-теста passed (5 новых: single-attempt, breaker abort/reset, periodic commit); pinned pre-commit Passed
  • code-reviewer: APPROVE (все 4 критичных инварианта верифицированы построчно)

Post-merge

Повторный холодный прогон на проде: ожидаю ~4-5k строк из регион-схемы даже при живом битом ЕКБ-сегменте; счётчики card_failed/group_aborted в логе воркера.

Refs #2367

## Что Hotfix лоадера из #2370 по итогам холодного прод-прогона. Прогон вскрыл: сегмент старых ЕКБ-ключей (`~100001007xxx`) детерминированно 500-ит на карточках (портал-сайд, воспроизводится с любого IP; свежие ключи работают), лоадер жёг ~12с/карточку на трёх 5xx-ретраях (181 фейл за 40 мин), а единственный commit в конце прогона терял всю работу при soft_time_limit-kill. Таск снят revoke'ом. - `fetch_doc_card`: **retries_5xx=0** — одна попытка, без backoff (5xx карточки = битые записи, не транзиент); список групп — с прежними ретраями; сетевые Timeout/Transport-ретраи не тронуты - **Периодический commit**: каждые 200 строк + после каждой (schema, group) — партиал переживает kill; SAVEPOINT per-row сохранён (ревью подтвердило: commit вне nested-блока, оркестровка чистая) - **SCHEMAS регион-первый**: agate_sverdregion стабилен целиком и покрывает ЕКБ-доки через агрегат; agate_ekbgo вторым как freshness-энхансер - **Circuit breaker**: 50 подряд card-фейлов → abort группы (`group_aborted`), прекращает HTTP (51-й ключ не запрашивается), успех/skip сбрасывает; новый счётчик `card_failed` ## Проверки - 32 gisogd-теста passed (5 новых: single-attempt, breaker abort/reset, periodic commit); pinned pre-commit Passed - code-reviewer: ✅ APPROVE (все 4 критичных инварианта верифицированы построчно) ## Post-merge Повторный холодный прогон на проде: ожидаю ~4-5k строк из регион-схемы даже при живом битом ЕКБ-сегменте; счётчики card_failed/group_aborted в логе воркера. Refs #2367
bot-backend added 1 commit 2026-07-04 04:18:19 +00:00
fix(gisogd66): карточки без 5xx-ретраев + circuit breaker + периодический commit
All checks were successful
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 9s
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m9s
CI / backend-tests (pull_request) Successful in 14m45s
3aa0db7574
Холодный прод-прогон вскрыл: сегмент старых ЕКБ-ключей (~100001007xxx)
детерминированно отдаёт 500 на карточках (портал-сайд, с любого IP),
каждая жгла ~12с на 3 ретраях (181 фейл / 40 мин), а единственный commit
в конце терял всё при soft_time_limit-kill.

- fetch_doc_card: retries_5xx=0 (5xx карточки — битые записи, не
  транзиент); список — с прежними ретраями; сетевые ретраи не тронуты.
- _sync_group: commit каждые 200 строк; load_gisogd_permits — после
  каждой (schema, group): партиал переживает time-limit kill.
- SCHEMAS: регион (agate_sverdregion) первым — карточки стабильны,
  покрывает ЕКБ-доки через агрегат; ekbgo вторым (freshness).
- circuit breaker: 50 подряд card-фейлов прерывают группу (битый
  сегмент), успех/skip сбрасывает. Новые счётчики: card_failed,
  group_aborted.

Refs #2367
bot-backend merged commit ae3278f92f into main 2026-07-04 04:33:45 +00:00
bot-backend deleted branch fix/gisogd66-broken-segment 2026-07-04 04:33:45 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2371
No description provided.