Delay entering TrialRunner context until run_trial #970
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.
Pull Request
Title
Delay entering
TrialRunner
context untilrun_trial
.Description
This is part of an attempt to try and see if can work around issues with
multiprocessing.Pool
needing to pickle certain objects when forking.For instance, if the Environment is using an SshServer, we need to start an EventLoopContext in the background to handle the SSH connections and threads are not picklable.
Nor are file handles, DB connections, etc., so there may be other things we also need to adjust to make this work.
See Also #967
Type of Change
Testing
Additional Notes (optional)
I think this is incomplete. To support forking inside the Scheduler and then entering the context of the given TrialRunner, we may also need to do something about the Scheduler's Storage object.
For now this is a draft PR to allow @jsfreischuetz and I to play with alternative organizations of #967.