Skip to content

Commit ea52a87

Browse files
committed
Heal 3.11 coverage tracing at JSONRPCDispatcher.run() exit
run() ends via its own internal cancelled task-group join; on 3.11 a direct `await dispatcher.run(...)` (not via tg.start) loses tracing on the lines that follow. Heal at the exit, matching the pattern in ClientSession.__aexit__.
1 parent 9dedb40 commit ea52a87

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

src/mcp/shared/jsonrpc_dispatcher.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from pydantic import ValidationError
2323
from typing_extensions import TypeVar
2424

25+
from mcp.shared._compat import resync_tracer
2526
from mcp.shared._otel import inject_trace_context, otel_span
2627
from mcp.shared._stream_protocols import ReadStream, WriteStream
2728
from mcp.shared.dispatcher import CallOptions, DispatchContext, Dispatcher, OnNotify, OnRequest, ProgressFnT
@@ -447,6 +448,7 @@ async def run(
447448
self._closed = True
448449
self._tg = None
449450
self._fan_out_closed()
451+
await resync_tracer()
450452

451453
async def _dispatch(
452454
self,

0 commit comments

Comments
 (0)