Repository navigation
Commit a79e30e
committed
fix(server): don't log a client session close as an ERROR in the standalone SSE writer
terminate() closes every request stream, including the standalone GET stream,
while standalone_sse_writer is still iterating it. The resulting
anyio.ClosedResourceError fell into the writer's generic `except Exception:
logger.exception(...)`, so every normal client-initiated session close (DELETE)
left an ERROR traceback in the server log.
Catch ClosedResourceError separately and log it at DEBUG: a stream closed under
the writer during termination is a normal end. All other exceptions keep the
existing ERROR report.
Regression test drives a GET request straight into the transport, calls
terminate() and asserts no ERROR record from mcp.server.streamable_http
(reproduces the traceback and fails on unpatched source). Focused transport
subset: 13 passed; ruff check/format clean.1 parent 52e64dd commit a79e30e
2 files changed
Lines changed: 61 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
771 | 771 | | |
772 | 772 | | |
773 | 773 | | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
774 | 778 | | |
775 | 779 | | |
776 | 780 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| 40 | + | |
39 | 41 | | |
40 | 42 | | |
41 | 43 | | |
| |||
793 | 795 | | |
794 | 796 | | |
795 | 797 | | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
796 | 853 | | |
797 | 854 | | |
798 | 855 | | |
| |||
0 commit comments