Tracks SpanProcessor.on_ending mutability (Linear OSS-12, finding T1).
Problem: SpanProcessor.on_ending runs after the span is already frozen, so any attribute/event/link a processor adds in the hook is silently dropped (spec MUST violated).
Fix: Introduce an intermediate 'ending' state so on_ending runs while the span is still mutable by the ending thread, then finalize. Rework ConcurrentMultiSpanProcessor.on_ending (thread-pool fan-out is incompatible with single-thread mutability).
Branch / worktree: oss_12_onending_frozen
Linear issue: https://linear.app/dash0/issue/OSS-12/t1-spanprocessoronending-runs-after-the-span-is-frozen-mutability-must
Tracks SpanProcessor.on_ending mutability (Linear OSS-12, finding T1).
Problem:
SpanProcessor.on_endingruns after the span is already frozen, so any attribute/event/link a processor adds in the hook is silently dropped (spec MUST violated).Fix: Introduce an intermediate 'ending' state so on_ending runs while the span is still mutable by the ending thread, then finalize. Rework ConcurrentMultiSpanProcessor.on_ending (thread-pool fan-out is incompatible with single-thread mutability).
Branch / worktree:
oss_12_onending_frozenLinear issue: https://linear.app/dash0/issue/OSS-12/t1-spanprocessoronending-runs-after-the-span-is-frozen-mutability-must