Fix "MapStates replays stale sub-state on repeated invocations when parent has a cascading state_initializer"#762
Conversation
skrawcz
left a comment
There was a problem hiding this comment.
Good catch and clean fix! The root cause analysis in #761 is thorough and the fix is correct — including sequence_id in the sub-app key ensures repeated invocations with initialize_from get distinct sub-application IDs.
Backwards compatibility is fine here: if old persisted sub-app state exists, initialize_from simply falls back to default_state and the sub-apps run fresh, which is correct.
One ask before merge: please add a regression test in tests/core/test_parallelism.py. The MWE in #761 is a great template — something like:
- Create a
MapStatesaction with cascade persistence (initialize_fromon the parent) - Run the parent app through the MapStates action twice (two steps)
- Assert the second invocation produces fresh results, not a replay of the first
Without an automated test, a future refactor could easily reintroduce this.
09b45ac to
a0cd351
Compare
|
I checked that the test passes with this PR and fails with the main branch. |
|
This PR has been inactive for 18 days after receiving review feedback. Please mark it as ready for review when you have addressed the comments. |
Fixes #761
Changes
Added sequence ID in the tasks keys
How I tested this
Tested against the MWE of the issue
Checklist