Skip to content

Commit a25e237

Browse files
committed
.
1 parent f60c308 commit a25e237

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

tests/integrations/threading/test_threading.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import sys
2-
import time
32
from concurrent import futures
43
from textwrap import dedent
54
from threading import Thread
@@ -146,8 +145,6 @@ def do_some_work(number):
146145
):
147146
pass
148147

149-
threads = []
150-
151148
with sentry_sdk.traces.start_span(
152149
name="root span", attributes={"sentry.op": "outer-trx"}, parent_span=None
153150
):
@@ -158,18 +155,21 @@ def do_some_work(number):
158155
):
159156
t = Thread(target=do_some_work, args=(number,))
160157
t.start()
161-
threads.append(t)
162-
163-
for t in threads:
164-
t.join()
158+
t.join()
165159

166-
time.sleep(0.1)
167160
sentry_sdk.flush()
168161

169162
spans = [item.payload for item in items]
170163

171-
# Free-threaded builds set thread_inherit_context to True, otherwise thread_inherit_context is False
172-
if propagate_scope or getattr(sys.flags, "thread_inherit_context", None):
164+
# Filter to the main trace only (child threads with propagate_scope=False
165+
# create spans on a separate trace that confuse render_span_tree).
166+
root = next(s for s in spans if s.get("is_segment") and s["name"] == "root span")
167+
spans = [s for s in spans if s["trace_id"] == root["trace_id"]]
168+
169+
expects_child_spans = propagate_scope or getattr(
170+
sys.flags, "thread_inherit_context", None
171+
)
172+
if expects_child_spans:
173173
assert render_span_tree(spans) == dedent(
174174
"""\
175175
- sentry.op="outer-trx": name="root span"
@@ -236,9 +236,13 @@ def do_some_work(number):
236236
sentry_sdk.flush()
237237

238238
spans = [item.payload for item in items]
239+
root = next(s for s in spans if s.get("is_segment") and s["name"] == "root span")
240+
spans = [s for s in spans if s["trace_id"] == root["trace_id"]]
239241

240-
# Free-threaded builds set thread_inherit_context to True, otherwise thread_inherit_context is False
241-
if propagate_scope or getattr(sys.flags, "thread_inherit_context", None):
242+
expects_child_spans = propagate_scope or getattr(
243+
sys.flags, "thread_inherit_context", None
244+
)
245+
if expects_child_spans:
242246
assert render_span_tree(spans) == dedent(
243247
"""\
244248
- sentry.op="outer-trx": name="root span"

0 commit comments

Comments
 (0)