Fix inconsistent field flattening #156
Merged
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.
Hey, first-time contributor here.
I noticed log fields weren't being flattened consistently and kept randomly changing on every refresh.
After looking into it, I noticed the
flattenfunction isn't tracking depth correctly:currentDepthis incremented before every recursive call but never decremented.As a result, after 10 steps, any further fields don't get flattened, and since map iteration order is random, the result differs per log line and per request.
This fixes the issue by decrementing
currentDepthafter returning from the recursive call.Alternatively, it might be worth considering if the depth limit is really needed here.
The function is only ever used to flatten JSON objects, so an infinite loop would be extremely unlikely/impossible.
Fixes #137