github / github/copilot-cli

Copilot CLI terminal freezes when a stdio MCP child crashes mid-call

Aperta
#3,067 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
area:input-keyboard area:mcp area:platform-windows
Lingua principale
Shell
Stelle
11.2k
Fork
1.9k
Merge medio
14h 16m
PR unite (30g)
6

Descrizione

# Bug: Copilot CLI terminal freezes when a stdio MCP child crashes mid-call

## What happens

When a stdio MCP child process crashes during an in-flight tool call, the **host Copilot CLI terminal becomes fully unresponsive** — keystrokes, mouse, and **Ctrl+C are all ignored**. Only force-closing the Windows Terminal tab or killing `pwsh.exe` recovers it. Reproduced twice in a row on Windows 11; affected tabs stay frozen indefinitely.

## Repro

A reliable trigger today is the WorkIQ MCP server, which has a deterministic `msalruntime.DLL` crash during concurrent token-refresh ([microsoft/work-iq#113](https://github.com/microsoft/work-iq/issues/113)):

1. `/plugin install workiq@work-iq`
2. Authenticate, then issue several `workiq-ask_work_iq` calls in parallel.
3. The WorkIQ child crashes (visible as `Application Error` in the Windows event log: `workiq.exe`, `msalruntime.DLL`, exception `0xc000027b`).
4. The Copilot CLI terminal hangs — no input accepted, including Ctrl+C.

## Why it matters

A misbehaving plugin should never be able to take the host CLI hostage. **Ctrl+C must always cancel the in-flight tool call** and return control to the prompt, regardless of child-process state.

## Likely cause

Host appears to do a blocking read on the child's stdout for a JSON-RPC response, and never notices process death / EOF. Concurrent calls compound the issue — multiple in-flight requests all become unresolvable after a single child crash.

## Environment

- Copilot CLI 1.0.40-3, Node v24.14.1
- Windows 11 + Windows Terminal + PowerShell 7
- Repro MCP: `@microsoft/workiq` 0.4.1.19742 (stdio, via npx)

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.