Prevent infinite loop when using reserved fields #35
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.
Attempt at fixing #33 by explicitly setting
parent: None
when callingtracing::debug!()
inBunyanFormattingLayer
. Also check whether the event is a "root" event before resolving the "current context" inon_event()
.Testing this was tricky, as it turns out the infinite loop only happens if the subscriber is installed globally (i.e with
tracing::subscriber::set_global_default()
). When using a thread-local subscriber, such as withtracing::subscriber::with_default()
,tracing
prevents you from re-entrantly acquiring the subscriber, returning a dummyNONE
subscriber the second time (which means the logs fromBunyanFormattingLayer
are always lost in that case). See https://github.com/tokio-rs/tracing/blob/v0.1.x/tracing-core/src/dispatcher.rs#L384closes: #33