From eb1c13e27cc9f7b277621fd92b60dc74a3c6cd39 Mon Sep 17 00:00:00 2001 From: vianney Date: Tue, 7 Jul 2026 15:15:13 +0200 Subject: [PATCH 1/2] Add default timeout for join --- ddtrace/internal/writer/writer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ddtrace/internal/writer/writer.py b/ddtrace/internal/writer/writer.py index c0b879ebb2f..4a0b64b02ae 100644 --- a/ddtrace/internal/writer/writer.py +++ b/ddtrace/internal/writer/writer.py @@ -503,7 +503,7 @@ def periodic(self): def _stop_service( self, - timeout: Optional[float] = None, + timeout: Optional[float] = 0.1, ) -> None: # FIXME: don't join() on stop(), let the caller handle this super(HTTPWriter, self)._stop_service() From 649b2d52643797aa7563e19634204bce6b365562 Mon Sep 17 00:00:00 2001 From: vianney Date: Tue, 7 Jul 2026 15:23:06 +0200 Subject: [PATCH 2/2] catch error --- ddtrace/internal/writer/writer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ddtrace/internal/writer/writer.py b/ddtrace/internal/writer/writer.py index 4a0b64b02ae..8f8fa4596a2 100644 --- a/ddtrace/internal/writer/writer.py +++ b/ddtrace/internal/writer/writer.py @@ -507,7 +507,10 @@ def _stop_service( ) -> None: # FIXME: don't join() on stop(), let the caller handle this super(HTTPWriter, self)._stop_service() - self.join(timeout=timeout) + try: + self.join(timeout=timeout) + except: + log.error("Join on periodic thread failed", exc_info=True) def on_shutdown(self): try: