mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-12 10:04:29 +02:00
29cd0c08b7
* Test for a panic inside global internal meter instrument's Unbind * Fix a possible nil-dereference crash There is a nil dereference crash if we perform some operations in certain order: - get a global meter - create an instrument - bind it - set the delegate - unbind the instrument - call some recording function on the not-really-bound-anymore instrument Unbind will run the no op run-once initialization routine, so the follow-up RecordOne call will not run it's initialization routine. Which RecordOne's initialization routine being skipped, the delegate to bounded instrument is not set, but the code is still trying to get a pointer to it and then unconditionally dereference it. Add an extra check for a nil pointer - if this is true, then Unbind was first and RecordOne should effectively be a no op. Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com> |
||
---|---|---|
.. | ||
core | ||
correlation | ||
global | ||
key | ||
metric | ||
propagation | ||
testharness | ||
trace | ||
unit |