yandex/avito detail_backfill: save-False не начисляет исход — та же потеря попытки, что #3332 у domclick #3338

Closed
opened 2026-09-02 12:39:05 +00:00 by bot-backend · 0 comments
Collaborator

Находка ревью PR #3335: дефект save-False, закрытый у domclick, жив у соседей —

  • tradein-mvp/backend/app/tasks/yandex_detail_backfill.py:459if save(...): enriched += 1 без else;
  • tradein-mvp/backend/app/tasks/avito_detail_backfill.py:685 — то же.

UPDATE, не задевший строку (запись исчезла между выборкой и сохранением), оставляет попытку без исхода → attempted ≠ сумма исходов, тихо.

Лечение

Как в PR #3335: failed += 1 + warning «UPDATE не нашёл строку id=…» (текст различим от парс/транспорт-ошибок). Заодно добавить в тест каждого файла контроль двойного начисления по пути пула (transport-сбой → empty-pool → attempted=2, failed=2, не 3) — minor из того же ревью, не покрытый у domclick.

Приёмка

  • Тождество attempted == сумма исходов тестом по значению у обоих;
  • Фальсификация: возврат if save(...) без else красит тест;
  • Прод: новые прогоны с diff=0.

Refs #3332, PR #3335, #3283.

Находка ревью PR #3335: дефект save-False, закрытый у domclick, жив у соседей — - `tradein-mvp/backend/app/tasks/yandex_detail_backfill.py:459` — `if save(...): enriched += 1` без else; - `tradein-mvp/backend/app/tasks/avito_detail_backfill.py:685` — то же. UPDATE, не задевший строку (запись исчезла между выборкой и сохранением), оставляет попытку без исхода → `attempted ≠ сумма исходов`, тихо. ## Лечение Как в PR #3335: `failed += 1` + warning «UPDATE не нашёл строку id=…» (текст различим от парс/транспорт-ошибок). Заодно добавить в тест каждого файла контроль двойного начисления по пути пула (transport-сбой → empty-pool → attempted=2, failed=2, не 3) — minor из того же ревью, не покрытый у domclick. ## Приёмка - [ ] Тождество attempted == сумма исходов тестом по значению у обоих; - [ ] Фальсификация: возврат `if save(...)` без else красит тест; - [ ] Прод: новые прогоны с diff=0. Refs #3332, PR #3335, #3283.
Sign in to join this conversation.
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#3338
No description provided.