fix: key pending tasks by event loop#8875
Merged
dmadisetti merged 2 commits intomainfrom Mar 26, 2026
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes a cross-event-loop task deduplication bug in @cache / @mo.persistent_cache for async functions by scoping “pending executions” to the currently running event loop, preventing sessions on different threads/loops from awaiting each other’s tasks (GH-8866).
Changes:
- Key
_cache_call_async._pending_executionsby(cache instance, event loop)instead of only by instance to avoid cross-loop task reuse. - Add a regression test that simulates a stale pending future from a different loop and asserts it is not touched/awaited.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
marimo/_save/save.py |
Scopes async cache pending-task deduplication to the active event loop and updates cleanup logic accordingly. |
tests/_save/test_cache.py |
Adds regression coverage for “pending task attached to a different loop” failures in app/run mode scenarios. |
mscolnick
approved these changes
Mar 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Summary
closes #8866
Isolates task loop by the active event loop, isolating competing processes from trying to eval another loop's task.