Fix Exception on using OpenTelemetry and ScatterGather queries #2960
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.
The onClose handler on ScatterGather queries calls the
end
operation on Spans a second time. This, however, has been restricted by an exception as this can indicate thread leaks.However, calling the
Span.end
on bothclose
and finishing of advancing the stream is necessary, as users might not always close a stream explicitly. Likewise, the stream may be closed without reading it completely.I have added an AtomicBoolean as close gate on the closeHandler, so it's always called exactly once.
The TestSpanFactory has been extended with the same behavior as the OpenTelemetrySpan to catch any other instances of this happening during the tests