OpenObserve Bug Fix Stops Silent Data Loss During Trace Attribute Flattening
A correctness bug in OpenObserve's tracing pipeline was silently overwriting resource-level attributes with span-level ones whenever both shared the same key during flattening. Because resource attributes are meant to be the authoritative source describing the emitting entity, this caused queries to return incorrect metadata — such as wrong service names — without any errors or alerts. The root cause was the absence of collision-handling logic between two separate reserved-field lists, meaning the last value written simply won. The fix establishes a clear naming convention: resource attributes retain authority, while colliding span and resource attributes receive distinct prefixes to prevent overwrites. A unified reserved-field list and targeted regression tests were also added to prevent the same class of bug from resurfacing under different field names.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in