Repository navigation
Release v1.48.0 - #295
Merged
Merged
Release v1.48.0#295
Conversation
With defaults.inprocess or PUPPETMASTER_FLOW_INPROCESS=1, a map walks its items as threads of the parent walker, not as new walker processes. Run locks, markers, stop and resume do not change. A thread walk that raises leaves the run interrupted, and the map starts it again.
_run_inline_workers set PUPPETMASTER_STATE_DIR in the process env for the whole run. Two inline runs on different stores in one process (Marionette runs swarms inline in its backend) then saw each other's state dir: a worker of one run wrote deltas, stdout sidecars and tool offloads into the other run's store, and the restore order could leave the wrong value. - state.bind_state_dir sets a ContextVar. state_dir_from_env reads it first, then the env. Every in-process reader uses it. - The inline role pool and the agentic parallel tool pool copy the context into their threads. - stamp_worker_env and the agentic shell env export the bound dir, so child processes see the same value as before. - A subprocess worker still sets the env in its own process. Repro: two concurrent inline runs held inside their workers with a barrier. Before, the plain run's worker resolved the other store. After, each resolves its own, and os.environ does not change.
…process map walks
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.
Release v1.48.0.
state.bind_state_dir), not inos.environ. Two inline runs on different stores in one process no longer write into each other's store. Readers usestate.state_dir_from_env. The inline role pool and the agentic parallel tool pool copy the context. Child processes get the bound dir throughstamp_worker_env.defaults.inprocessorPUPPETMASTER_FLOW_INPROCESS=1).Local: full unittest suite 4298 tests, one old test updated to the binding contract. New
tests/test_state_dir_binding.py(5 tests). A race script reproduces the wrong store on 1.47.0 and is clean on this tree. Python 3.9 floor run of the new tests passes.See docs/CHANGELOG.md.