python-sdk
python-sdk copied to clipboard
ValueError: I/O operation on closed pipe
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
I don't think its session.initialize, because if I remove that but put some litellm code it still happens.
bump
downgrade to mcp 1.5.0 solves the problem.
Hi is this still an issue? Checking as this has been open for a while.