Shared-session concurrency harness defect: override_get_session yields one Session to every request — SQLAlchemy Sessions not thread-safe, breaks ~12 tests in test_integration_concurrent.py #105
Labels
No labels
agentic-osint
audit
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:preflight
blocked:verify-failed
bug
chore
deferred
enhancement
feature-request
in-progress
lint-baseline
lint-cleanup
needs-decompose
needs-triage
performance
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/osint-hub#105
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Tracked by #122 (replaces #121, which was non-mergeable due to a stale base branch; #122 is rebased onto origin/main and now reports mergeable=true).
The fix swaps the shared-session override (one Session for every concurrent request) for a per-request session strategy backed by QueuePool + WAL SQLite. Each FastAPI request now gets an independent Session with its own DBAPI connection — the safe shape under concurrency.
14/14 concurrency tests pass; 47/47 test_api_cases tests pass; broader integration suite shows 13 fewer failures than pristine main (37 pre-existing failures remain, none introduced by this change).
Leaving this issue open per tasker-worker protocol — closing is the user's call once the PR is reviewed.
Launcher re-dispatch for this issue was blocked by the in-repo
.gsd/gates/pre-dispatch.shgate, not by anything in the issue itself.Gate output
Cause —
.worktrees/t_5df1a1a4/is a leftover from a prior kilo-gsd run (likely the #109 dispatch). The in-repo gate whitelists only.gsd/,.venv/,.kilo/, so any.worktrees/directory marks the worktree as dirty and the gate refuses every subsequent dispatch for the whole repo until the directory is cleaned up (or the gate is updated).Suggested fix for janitor — either
git worktree remove .worktrees/t_5df1a1a4(if safe) or update.gsd/gates/pre-dispatch.shto whitelist.worktrees/. After either, the next launcher pass should be able to dispatch this issue normally.Issue status — still unclaimed; no live tmux session or kilo-gsd pid for #105. The
blocked:preflightlabel is still on the issue but noin-progressclaim is active. This comment does not consume the issue.(Automated launcher report from kanban task t_4ed5aeda.)
Re-dispatch blocked by the in-repo
.gsd/gates/pre-dispatch.shgate, not by anything in the issue itself.Gate output
Cause — different from the prior attempt. The
.worktrees/leftover from 2026-09-08 is gone. The worktree is dirty because Mark/osint-hub#101's kilo-gsd.py run is in mid-flight on the SAME checkout: live tmuxkilo-gsd-osint-hub-101-bugfix, orchestrator pid 997726, salvage-statecurrent_phase=Bugfix,_bugfix_gate=Verify, 2/3 Bugfix retries used. The bugfix agent is editing backend/app/modules/base.py + the orchestrator/retry_handler files trying to clear the 452-error Verify gate. The in-repo gate (md5=318649854b08...; whitelists only.gsd/,.venv/,.kilo/) sees those edits as dirty and refuses every dispatch until they are committed or stashed.Suggested fixes for janitor
kilo-gsd-osint-hub-101-bugfix, thengit -C /home/b/Projects/osint-hub checkout -- backend/app/modules/base.py backend/app/services/investigations/orchestrator.py backend/app/services/investigations/orchestrator_enhanced.py backend/app/services/investigations/retry_handler.py(or stash) to clean the worktree..worktrees/for future runs.Issue status — still unclaimed; no live tmux session or kilo-gsd pid for #105. The
blocked:preflightlabel is still on the issue but noin-progressclaim is active. This comment does not consume the issue.(Automated launcher report from kanban task t_4ed5aeda.)
kilo-gsd pre-dispatch gate is BLOCKED at the canonical repo (/home/b/Projects/osint-hub). Worktree has uncommitted PostScript files
osandsys(ImageMagick dumps, ~8KB each) at the repo root, outside the gate whitelist (.gsd/, .venv/, .kilo/). The launcher cannot remediate per contract (forbidden to run git clean / git reset on the runner path). Operator one-liner:cd /home/b/Projects/osint-hub && rm os sysand re-dispatch. No live tmux/pid for #105; no commit on origin/main referencing #105.Noted by fixit-board launcher on 2026-09-15: this issue was already resolved before the lane re-dispatched.
Resolving commit on origin/main:
cc3b564fix(tests): per-request session via QueuePool + WAL (closes #105)e02ff40Merge pull request 'fix(tests): per-request session via QueuePool + WAL (closes #105)' (#122) from fix/105-per-request-session-v2 into mainDiff stat of
cc3b564matches the issue body spec:Closing this comment thread — no further action needed from the fixit board. The associated kanban card (t_bba0d69c) is being archived per the pre-completed check in kilo-gsd-runner-contract step 2.