diff --git a/python/packages/kagent-adk/src/kagent/adk/_a2a.py b/python/packages/kagent-adk/src/kagent/adk/_a2a.py index 82ae329ed..4329d94d1 100644 --- a/python/packages/kagent-adk/src/kagent/adk/_a2a.py +++ b/python/packages/kagent-adk/src/kagent/adk/_a2a.py @@ -42,12 +42,12 @@ def health_check(request: Request) -> PlainTextResponse: def thread_dump(request: Request) -> PlainTextResponse: - import io + import tempfile - buf = io.StringIO() - faulthandler.dump_traceback(file=buf) - buf.seek(0) - return PlainTextResponse(buf.read()) + with tempfile.TemporaryFile(mode="w+") as tmp: + faulthandler.dump_traceback(file=tmp, all_threads=True) + tmp.seek(0) + return PlainTextResponse(tmp.read()) kagent_url_override = os.getenv("KAGENT_URL") diff --git a/python/packages/kagent-crewai/src/kagent/crewai/_a2a.py b/python/packages/kagent-crewai/src/kagent/crewai/_a2a.py index 1f3a7e676..fa64b19b8 100644 --- a/python/packages/kagent-crewai/src/kagent/crewai/_a2a.py +++ b/python/packages/kagent-crewai/src/kagent/crewai/_a2a.py @@ -29,12 +29,12 @@ def def_health_check(request: Request) -> PlainTextResponse: def thread_dump(request: Request) -> PlainTextResponse: - import io + import tempfile - buf = io.StringIO() - faulthandler.dump_traceback(file=buf) - buf.seek(0) - return PlainTextResponse(buf.read()) + with tempfile.TemporaryFile(mode="w+") as tmp: + faulthandler.dump_traceback(file=tmp, all_threads=True) + tmp.seek(0) + return PlainTextResponse(tmp.read()) class KAgentApp: diff --git a/python/packages/kagent-langgraph/src/kagent/langgraph/_a2a.py b/python/packages/kagent-langgraph/src/kagent/langgraph/_a2a.py index 877abbc46..d7936cf85 100644 --- a/python/packages/kagent-langgraph/src/kagent/langgraph/_a2a.py +++ b/python/packages/kagent-langgraph/src/kagent/langgraph/_a2a.py @@ -35,12 +35,12 @@ def health_check(request: Request) -> PlainTextResponse: def thread_dump(request: Request) -> PlainTextResponse: """Thread dump endpoint for debugging.""" - import io + import tempfile - buf = io.StringIO() - faulthandler.dump_traceback(file=buf) - buf.seek(0) - return PlainTextResponse(buf.read()) + with tempfile.TemporaryFile(mode="w+") as tmp: + faulthandler.dump_traceback(file=tmp, all_threads=True) + tmp.seek(0) + return PlainTextResponse(tmp.read()) class KAgentApp: diff --git a/python/packages/kagent-openai/src/kagent/openai/_a2a.py b/python/packages/kagent-openai/src/kagent/openai/_a2a.py index 1f1fddbaf..92965e7d3 100644 --- a/python/packages/kagent-openai/src/kagent/openai/_a2a.py +++ b/python/packages/kagent-openai/src/kagent/openai/_a2a.py @@ -44,12 +44,12 @@ def health_check(request: Request) -> PlainTextResponse: def thread_dump(request: Request) -> PlainTextResponse: """Thread dump endpoint for debugging.""" - import io + import tempfile - buf = io.StringIO() - faulthandler.dump_traceback(file=buf) - buf.seek(0) - return PlainTextResponse(buf.read()) + with tempfile.TemporaryFile(mode="w+") as tmp: + faulthandler.dump_traceback(file=tmp, all_threads=True) + tmp.seek(0) + return PlainTextResponse(tmp.read()) # Environment variables