Skip to content

Kmontemayor/graph store stall fix#719

Draft
kmontemayor2-sc wants to merge 2 commits into
mainfrom
kmontemayor/graph-store-stall-fix
Draft

Kmontemayor/graph store stall fix#719
kmontemayor2-sc wants to merge 2 commits into
mainfrom
kmontemayor/graph-store-stall-fix

Conversation

@kmontemayor2-sc

Copy link
Copy Markdown
Collaborator

Scope of work done

Where is the documentation for this feature?: N/A

Did you add automated tests or write a test plan?

Updated Changelog.md? NO

Ready for code review?: NO

kmontemayor and others added 2 commits July 23, 2026 17:15
Add a per-channel in-flight submission cap to the shared graph-store
sampling worker's scheduler so the single scheduler thread stays
wait-free at high fan-out.

- worker_concurrency loop-local mirrors the sampler's bounded semaphore.
- _is_channel_parked_locked: a channel with worker_concurrency batches
  submitted-but-not-completed is "parked".
- _submit_one_batch PARKs (returns False, no re-enqueue) instead of
  issuing a submit that could block the scheduler on a saturated output
  channel; re-enqueue now goes through the membership-guarded helper to
  avoid a duplicate round-robin turn.
- _on_batch_done WAKEs a parked channel by re-enqueueing it once an
  in-flight slot frees -- the sole wake path.
- Phase 3 idle wait, both worker/backend signatures, and the plain
  round-robin pump body are unchanged from main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds the GLT-order-faithful regression tests that guard the per-channel
in-flight cap against the cross-rank deadlock it fixes. The shared harness
(_BoundedBlockingChannel, _GltOrderFakeSampler, _CountingTaskQueue) drives the
real _shared_sampling_worker_loop with a paused consumer whose channel
saturates and whose coroutines wedge in send, holding the sampler semaphore.
StallFixWorkerLoopTest then asserts the co-located active channel keeps
completing epochs and commands keep draining, and that a parked channel idles
on Phase 3's timed wait instead of busy-spinning. Also give the existing
worker-loop base test a real int worker_concurrency so the parked-channel
check does not compare against a MagicMock.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@kmontemayor2-sc

Copy link
Copy Markdown
Collaborator Author

/all_test

@github-actions

Copy link
Copy Markdown
Contributor

GiGL Automation

@ 17:49:30UTC : 🔄 Integration Test started.

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

GiGL Automation

@ 17:49:31UTC : 🔄 Python Unit Test started.

@ 18:56:30UTC : ✅ Workflow completed successfully.

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

GiGL Automation

@ 17:49:31UTC : 🔄 C++ Unit Test started.

@ 17:51:29UTC : ✅ Workflow completed successfully.

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

GiGL Automation

@ 17:49:32UTC : 🔄 Lint Test started.

@ 17:59:06UTC : ✅ Workflow completed successfully.

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

GiGL Automation

@ 17:49:32UTC : 🔄 E2E Test started.

@ 20:09:37UTC : ❌ Workflow failed.
Please check the logs for more details.

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

GiGL Automation

@ 17:49:32UTC : 🔄 Scala Unit Test started.

@ 18:00:08UTC : ✅ Workflow completed successfully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant