fix(site_finder): SAVEPOINT-isolate quarter-dump lookup db.execute (#2464 Wave 2) #2467

Merged
bot-backend merged 1 commit from worktree-agent-aa1fb22f5cd3eb4a8 into main 2026-07-08 06:30:33 +00:00

1 commit

Author SHA1 Message Date
7f0ea1bb8b fix(backend): wrap quarter-dump lookup db.execute in SAVEPOINTs (#2464)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-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 15m1s
11 db.execute swallow sites across the _get_* helpers in
quarter_dump_lookup.py caught failures without a savepoint, aborting the
shared /analyze request session for sibling helpers and downstream
queries (get_or_fetch_zone_regulation, the 9f cad_parcels begin_nested
block). Wrap each in db.begin_nested(); _get_engineering_structures_by_
boundary and _get_zouit_engineering_overlaps get two independent
savepoints (one per db.execute) per the RELEASE SAVEPOINT trap.
get_connection_points and _get_parcel_wkt confirmed already-safe (their
db.execute propagates, not swallows). Adds regression tests.

Refs #2464 (cluster A session-poisoning, Wave 2).
2026-07-08 11:10:48 +05:00