Commit graph

8 commits

Author SHA1 Message Date
2b646bc7e5 fix(ptica): два запроса connection-capacity перестают травить общую сессию (#2464)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 11s
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 2m2s
CI / backend-tests (pull_request) Successful in 17m28s
_query_power_points и _query_water_latest делали db.execute без SAVEPOINT, тогда
как четыре соседних _query_* в том же файле его имеют.

Пункт эпика указывал на другое место — отсутствие db.rollback() в except-блоке
_get_connection_capacity (full_report_pdf.py:217). Но плоский rollback на ОБЩЕЙ
сессии запрещён: он снёс бы работу вызывающего. Чинить надо там, где сбой
происходит, — как во всей волне #2464.

Цепочка целиком:

  сбой в _query_power_points
    → исключение всплывает (в get_connection_capacity try/except нет)
    → его глотает _get_connection_capacity ради деградации §3
    → транзакция остаётся aborted
    → падает уже СЛЕДУЮЩИЙ запрос — рыночная цена в _generate_concept_result
    → концепция молча уходит в class_norm-фолбэк

То есть отказ проявляется не там, где случился, и выглядит как «нет рыночных
данных». Ровно этот класс и описывает эпик.

Третье место (SET LOCAL statement_timeout в _query_nearby_network_zones) при
беглом поиске выглядит незащищённым, но лежит ВНУТРИ savepoint'а — проверено по
отступам, трогать не нужно.

Тест на PostgresLikeSession (tests/support/pg_session.py) — двойнике с настоящей
семантикой aborted-транзакции. На MagicMock он был бы зелёным по построению.
Против origin/main:

  следующий запрос после проглоченного сбоя  → AbortedTransactionError, ×2
  savepoints_entered = 0 вместо >=1          → падает, ×2
  двойник сам воспроизводит отравление       — контроль, зелёный с обеих сторон

Последний контроль не для симметрии: без него зелёные тесты нельзя отличить от
«двойник ничего не моделирует».

Прогоны: tests/services/site_finder + tests/services/exporters — 868 passed rc=0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 14:30:29 +05:00
39dd63333e fix(site_finder): SAVEPOINT-isolate DB errors across cluster A (#2464) (#2465)
All checks were successful
Deploy / changes (push) Successful in 9s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 3m29s
Deploy / build-worker (push) Successful in 4m48s
Deploy / deploy (push) Successful in 1m43s
2026-07-07 12:50:11 +00:00
85435fbf1b fix(site-finder): SET LOCAL литералом — bind-параметр ломал nearby_network_zones (#2283)
All checks were successful
Deploy / changes (push) Successful in 8s
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 1m57s
Deploy / build-worker (push) Successful in 3m3s
Deploy / deploy (push) Successful in 1m47s
2026-07-03 08:44:38 +00:00
7c12812f81 feat(site-finder): позитив-разрез сетевых ЗОУИТ «сеть рядом с участком» (Фаза C2/C3) (#2281)
Some checks failed
Deploy / changes (push) Successful in 7s
Deploy / build-backend (push) Successful in 2m49s
Deploy / build-worker (push) Successful in 4m31s
Deploy / build-frontend (push) Successful in 5m19s
Deploy / deploy (push) Has been cancelled
2026-07-03 08:18:24 +00:00
15757685c9 feat(site-finder): Celery + §3 точки выхода газосети (#2119 B2, PR-4/4 — финал формы-6) (#2251)
All checks were successful
Deploy / changes (push) Successful in 7s
Deploy / build-backend (push) Successful in 2m17s
Deploy / build-worker (push) Successful in 3m19s
Deploy / build-frontend (push) Successful in 3m54s
Deploy / deploy (push) Successful in 1m34s
2026-07-03 04:26:41 +00:00
e501dedf78 feat(site-finder): ЕЭСК-резервы городских ПС/ТП + тепло из ФГИС ФАС (#2119 B2) (#2165)
All checks were successful
Deploy / changes (push) Successful in 9s
Deploy / build-backend (push) Successful in 2m48s
Deploy / build-worker (push) Successful in 3m59s
Deploy / build-frontend (push) Successful in 4m38s
Deploy / deploy (push) Successful in 1m37s
2026-07-02 16:44:57 +00:00
5839680998 feat(site-finder): газ — свободная мощность ГРС + пометка ЕЭСК в §3 (#2119 Фаза B1) (#2123)
All checks were successful
Deploy / changes (push) Successful in 8s
Deploy / build-backend (push) Successful in 2m2s
Deploy / build-worker (push) Successful in 3m17s
Deploy / build-frontend (push) Successful in 3m57s
Deploy / deploy (push) Successful in 1m31s
2026-07-02 12:54:05 +00:00
4758ea5e2b feat(site-finder): резервы мощности для ТП — электро+вода на карте §3 (#2119 Фаза A) (#2120)
All checks were successful
Deploy / changes (push) Successful in 8s
Deploy / build-backend (push) Successful in 2m16s
Deploy / build-worker (push) Successful in 3m27s
Deploy / build-frontend (push) Successful in 3m47s
Deploy / deploy (push) Successful in 1m30s
2026-07-02 08:36:51 +00:00