Skip to content

Commit 62b0302

Browse files
committed
Set status properly on end
Fixes #357
1 parent a89bbc8 commit 62b0302

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

Diff for: opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -259,14 +259,15 @@ def end(self, end_time: Optional[int] = None) -> None:
259259
raise RuntimeError("Calling end() on a not started span.")
260260
has_ended = self.end_time is not None
261261
if not has_ended:
262+
if self.status is None:
263+
self.status = Status(canonical_code=StatusCanonicalCode.OK)
264+
262265
self.end_time = end_time if end_time is not None else time_ns()
266+
263267
if has_ended:
264268
logger.warning("Calling end() on an ended span.")
265269
return
266270

267-
if self.status is None:
268-
self.set_status(Status(canonical_code=StatusCanonicalCode.OK))
269-
270271
self.span_processor.on_end(self)
271272

272273
def update_name(self, name: str) -> None:

Diff for: opentelemetry-sdk/tests/trace/test_trace.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,10 @@ def test_ended_span(self):
574574
"Test description",
575575
)
576576
root.set_status(new_status)
577-
self.assertIs(root.status, None)
577+
self.assertEqual(
578+
root.status.canonical_code,
579+
trace_api.status.StatusCanonicalCode.OK,
580+
)
578581

579582
def test_error_status(self):
580583
try:

0 commit comments

Comments
 (0)