DM-45894: Fix dimension universe instantiation in subprocesses #304
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.
With run-qbb when dimension universe is not the default one, we need
to make sure that that universe is instantiated from a configuration
in a subprocess before unpickling anything that requires that universe.
The fix uses butler factory to do that, using its unpickle method,
and there is some complicated logic in executors to make sure that
unpickling of that factory happens first thing in a subprocess.
There may be an easier way to enforce that but it would require
interface changes for MPGraphExecutor or SingleQuantumExecutor.
Subprocess parameters are now pickled manually to guarantee that
logging is initialized properly in a subprocess before any complex
unpickling happens.
Checklist
doc/changes