Correctly deinit logging before reinit when changed on the fly #4151
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.
When we set the log level on the fly with, say, an http command
ll?partition=tx&level=trace
, we update a basic per-partition table and then (re)initialize the rest of the tracing subsystem. Unfortunately this only works correctly if we deinitialize the logging subsystem before reinitializing it (as we do most places where dynamic tracing reconfiguration are allowed). In this one path we fail to deinit before reinit, and this ultimately means the max log level never gets propagated over the rust bridge, and the new tracing facility on the rust side never activates.(It does activate already if you set the initial log level to trace, just not if you reconfigure on the fly)
Anyway, this change fixes the reconfiguration path to deinit before reinit.