chore: use Box::leak() to ensure logging guard lives for the program's lifetime #17425
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.
I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/
Summary
chore: use
Box::leak()to ensure logging guard lives for the program's lifetimePreviously, the logging guard was held with
let _guard = ..., whichcaused it to be dropped when the
mainfunction returned. This couldlead to an error when other threads, still running and depending on the
logging guard for log output, attempt to log after the guard has been
dropped.
By using
Box::leak(), the logging guard is ensured to remain valid forthe entire lifetime of the program, preventing such errors.
Tests
Type of change
Related Issues
This change is