Python client: make Session.close() concurrency-safe and cache the real reply (R21-O26 / CLI-27) #202

Open
opened 2026-11-06 15:25:08 -05:00 by dohertj2 · 0 comments
Owner

Session.close() has no lock around _closed, and a repeat close returns a synthesized reply.

Source: archreview/2026-10-21/remediation/00-tracking.md row R21-O26 (cycle-1 CLI-27)

Next step (from the tracker): Guard with an asyncio.Lock and cache the real reply, as .NET and Go do.

Current-state evidence: the row is still Open/Deferred in the latest (2026-10-21) tracker, and a code check on local main @ 8c0a51d (2026-11-06) found it still present unless noted below.

`Session.close()` has no lock around `_closed`, and a repeat close returns a synthesized reply. Source: `archreview/2026-10-21/remediation/00-tracking.md` row R21-O26 (cycle-1 CLI-27) Next step (from the tracker): Guard with an `asyncio.Lock` and cache the real reply, as .NET and Go do. Current-state evidence: the row is still `Open`/`Deferred` in the latest (2026-10-21) tracker, and a code check on local `main` @ `8c0a51d` (2026-11-06) found it still present unless noted below.
dohertj2 added the area:client-pythontype:review-findingpriority:p3migrated labels 2026-11-06 15:25:08 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/mxaccessgw#202