Do not cause config getters to create IPC clients #1154
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:
We may be too flexible when it comes to init'ing the IPCConfigClient if one is not found. As we have observed in prod it can cause some unknown behaviors.
So let's step back and on first principals make the flow more strict.
We always expect DaemonConfigLoader.registerFactory() to be called before any config loader thread starts, this is by design and should happen in the main thread. There on, every config_loader update thread should attempt at reading the config (if available) if the configClient exists, if it doesn't exist there is already good error handling and logging that we should leverage.
The worst thing that can happen here is one iteration of the background thread for reading config will miss a profiling config and log the error, that's far more better than debugging race conditions
Differential Revision: D84078972