File tree Expand file tree Collapse file tree 3 files changed +16
-1
lines changed
propagator/opentelemetry-propagator-jaeger
src/opentelemetry/propagators/jaeger Expand file tree Collapse file tree 3 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3737 ([ #2705 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/2705 ) )
3838- Add entrypoint for metrics exporter
3939 ([ #2748 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/2748 ) )
40+ - Fix Jaeger propagator usage with NonRecordingSpan
41+ ([ #2762 ] ( https://github.com/open-telemetry/opentelemetry-python/pull/2762 ) )
4042
4143## [ 1.12.0rc1-0.31b0] ( https://github.com/open-telemetry/opentelemetry-python/releases/tag/v1.12.0rc1-0.31b0 ) - 2022-05-17
4244
Original file line number Diff line number Diff line change @@ -81,7 +81,8 @@ def inject(
8181 if span_context == trace .INVALID_SPAN_CONTEXT :
8282 return
8383
84- span_parent_id = span .parent .span_id if span .parent else 0
84+ # Non-recording spans do not have a parent
85+ span_parent_id = span .parent .span_id if span .is_recording () and span .parent else 0
8586 trace_flags = span_context .trace_flags
8687 if trace_flags .sampled :
8788 trace_flags |= self .DEBUG_FLAG
Original file line number Diff line number Diff line change @@ -230,3 +230,15 @@ def test_extract_invalid_uber_trace_id_header_to_implicit_ctx(self):
230230
231231 ctx = FORMAT .extract (carrier )
232232 self .assertDictEqual (Context (), ctx )
233+
234+ def test_non_recording_span_does_not_crash (self ):
235+ """Make sure propagator does not crash when working with NonRecordingSpan"""
236+ tracer = trace .TracerProvider ().get_tracer ("sdk_tracer_provider" )
237+ mock_setter = Mock ()
238+ span = trace_api .NonRecordingSpan (trace_api .SpanContext (1 , 1 , True ))
239+ with trace_api .use_span (span , end_on_exit = True ):
240+ try :
241+ FORMAT .inject ({}, setter = mock_setter )
242+ except Exception as exc :
243+ self .fail (f'Injecting failed for NonRecordingSpan with { exc } ' )
244+
You can’t perform that action at this time.
0 commit comments