python-sdk icon indicating copy to clipboard operation
python-sdk copied to clipboard

ValueError: I/O operation on closed pipe

Open Fractal-0 opened this issue 7 months ago • 3 comments

Describe the bug The code runs but at the end I get a ValueError: I/O operation on closed pipe

Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x0000024FADDA1D00>
Traceback (most recent call last):
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\proactor_events.py", line 116, in __del__
    _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\proactor_events.py", line 80, in __repr__
    info.append(f'fd={self._sock.fileno()}')
                      ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\windows_utils.py", line 102, in fileno
    raise ValueError("I/O operation on closed pipe")
ValueError: I/O operation on closed pipe
Exception ignored in: <function BaseSubprocessTransport.__del__ at 0x0000024FADDA04A0>
Traceback (most recent call last):
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\base_subprocess.py", line 125, in __del__
    _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\base_subprocess.py", line 78, in __repr__
    info.append(f'stdout={stdout.pipe}')
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\proactor_events.py", line 80, in __repr__
    info.append(f'fd={self._sock.fileno()}')
                      ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Fractal\AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\Lib\asyncio\windows_utils.py", line 102, in fileno
    raise ValueError("I/O operation on closed pipe")
ValueError: I/O operation on closed pipe

To Reproduce Use this code:

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

#from litellm import experimental_mcp_client
#import litellm

import asyncio
import json


server_params = StdioServerParameters(
    command="npx",
    args=["-y", "[email protected]"],
    env={"TAVILY_API_KEY": "<key>"}
)

async def main():
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # Initialize the connection
            await session.initialize()

            # Get tools
            #tools = await experimental_mcp_client.load_mcp_tools(session, 'openai')
            #print("MCP TOOLS: ", tools)

            #messages = [{"role": "user", "content": "What is the newest Salesforce model?"}]
            #llm_response = await litellm.acompletion(
            #    model="ollama/hf.co/DevQuasar/Salesforce.Llama-xLAM-2-8b-fc-r-GGUF:Q8_0",
            #    api_key='sk-1234',
            #    messages=messages,
            #    tools=tools,
            #)
            #print("LLM RESPONSE: ", json.dumps(llm_response, indent=4, default=str))
            pass
    
asyncio.run(main())

**Expected behavior**
No ValueError, I can't use try except blocks either in the function or on the asyncio run

**Desktop (please complete the following information):**
 - OS: Windows 11
 - Version 1.8.1
- Python 3.11 (uv venv)

**Additional context**
I have traced it back to session.initialize, if I remove that there is no error

Fractal-0 avatar May 14 '25 18:05 Fractal-0

I don't think its session.initialize, because if I remove that but put some litellm code it still happens.

Fractal-0 avatar May 14 '25 18:05 Fractal-0

bump

Fractal-0 avatar May 18 '25 20:05 Fractal-0

downgrade to mcp 1.5.0 solves the problem.

codemee avatar May 27 '25 15:05 codemee

Hi is this still an issue? Checking as this has been open for a while.

felixweinberger avatar Oct 06 '25 15:10 felixweinberger