Logging: Improve threadsafety (#57591)#229
Merged
kpamnany merged 1 commit intov1.10.2+RAIfrom Nov 3, 2025
Merged
Conversation
Author
|
This doesn't work -- there are multiple changes to the order in which sub-modules of |
Closes JuliaLang#57376 Closes JuliaLang#34037 - Adds a lock in `SimpleLogger` and `ConsoleLogger` for use on maxlog tracking and stream writes to improve threadsafety. Closely similar to JuliaLang#54497 - Turns the internal `_min_enabled_level` into a `Threads.Atomic`. There are [some direct interactions](https://juliahub.com/ui/Search?type=code&q=_min_enabled_level&w=true) to this internal in the ecosystem, but they should still work ``` julia> Base.CoreLogging._min_enabled_level[] = Logging.Info+1 LogLevel(1) ``` - Brings tests over from JuliaLang#57448 Performance seems highly similar: ``` julia> @time for i in 1:10000 @info "foo" maxlog=10000000 end [ Info: foo ... 0.481446 seconds (1.33 M allocations: 89.226 MiB, 0.49% gc time) ``` ``` 0.477235 seconds (1.31 M allocations: 79.002 MiB, 1.77% gc time) ```
dcbf5d1 to
26903f2
Compare
|
I've rebased the PR and moved the logging include after the concurrency includes, and that fixed the issues. I've tested the patch on RAICode here: https://github.com/RelationalAI/raicode/pull/26263 |
Drvi
approved these changes
Oct 31, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
PR Description
Adds a lock in
SimpleLoggerandConsoleLoggerfor use on maxlog tracking and stream writes to improve threadsafety. Closely similar to Make TestLogger thread-safe (introduce a lock) JuliaLang/julia#54497Turns the internal
_min_enabled_levelinto aThreads.Atomic. There are some directinteractions to this internal in the ecosystem, but they should still work
Performance seems highly similar:
Checklist
Requirements for merging:
port-to-*labels that don't apply.