Fix memory leak in SdkSpan#spanEndingThread#7984
Merged
jack-berg merged 2 commits intoopen-telemetry:mainfrom Jan 20, 2026
Merged
Fix memory leak in SdkSpan#spanEndingThread#7984jack-berg merged 2 commits intoopen-telemetry:mainfrom
jack-berg merged 2 commits intoopen-telemetry:mainfrom
Conversation
SdkSpan never releases the reference to the Thread in spanEndingThread. This means that the thread (and all the objects referenced by it) cannot be garbage collected, if the SdkSpan is held in memory for an extended period of time. Since spanEndingThread is only needed in the ENDING phase, it can be set back to null once the ENDED phase has been reached.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7984 +/- ##
============================================
+ Coverage 90.12% 90.16% +0.03%
- Complexity 7318 7478 +160
============================================
Files 824 836 +12
Lines 22027 22551 +524
Branches 2177 2224 +47
============================================
+ Hits 19852 20333 +481
- Misses 1498 1516 +18
- Partials 677 702 +25 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
jack-berg
approved these changes
Jan 20, 2026
Member
jack-berg
left a comment
There was a problem hiding this comment.
This is reasonable enough, though its a bit odd to think about SdkSpan references being held after SpanProcessor threads have stopped.
Contributor
|
Thank you for your contribution @gerolf-da! 🎉 We would like to hear from you about your experience contributing to OpenTelemetry by taking a few minutes to fill out this survey. |
Contributor
Author
|
Thanks for merging and adding an additional test case. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
SdkSpannever releases the reference to theThreadobject inspanEndingThread. This means, that the thread (and all the objects referenced by it) cannot be garbage collected if the endedSdkSpanis held in memory for an extended period of time (for whatever reason).Since
spanEndingThreadis only needed in theENDINGphase, it can be set back to null once theENDEDphase has been reached.