System.InvalidOperationException: Queue empty when using PSReadLine in VSCode

Aperta
#4,779 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
csharp, powershell, vscode
Ambito
cli

Direzione di ricerca

The stack trace points to Microsoft.PowerShell.PSConsoleReadLine.ReadKey and InputLoop; begin there and compare the key, history-navigation, and tab-completion sequence in the report. Reproduce it in the VSCode PowerShell terminal using the listed versions and steps; it is done when the sequence no longer throws Queue empty or causes the reported VSCode behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Needs-Triage :mag:
Prerequisites
  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues, especially the pinned issues.
Exception report
Last 101 Keys:

pipmo ave<Tab>dap<Tab><Backspace><Enter>
get-mo<Tab><Enter>
pppppget-modules<Enter>
get-modu<Tab><Enter>
remove-mo<Tab> dap<Tab><Enter>
ppp<DownArrow><UpArrow><UpArrow><UpArrow><Enter>
pppppppppppppppppppppppp

Exception:

System.InvalidOperationException: Queue empty.
   at System.Collections.Generic.Queue`1.ThrowForEmptyQueue()
   at System.Collections.Generic.Queue`1.Dequeue()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadKey()
   at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)
Screenshot
Environment:

PSReadLine: 2.4.0-beta0+923a890f2e7ea10465f3a80a2bc030121a1c2f68
PowerShell: 2025.0.0
OS: Microsoft Windows 11 Enterprise 24H2 (10.0.26100)
BufferWidth: 141
BufferHeight: 16
Locale                                    : 0809
Manufacturer                              : Microsoft Corporation
MUILanguages                              : {en-GB, en-US}


Note: The keys that follow were not repeated / stuck keys but it seems to have key repetitions?

Last 101 Keys:

pipmo ave<Tab>dap<Tab><Backspace><Enter>
get-mo<Tab><Enter>
pppppget-modules<Enter>
get-modu<Tab><Enter>
remove-mo<Tab> dap<Tab><Enter>
ppp<DownArrow><UpArrow><UpArrow><UpArrow><Enter>
pppppppppppppppppppppppp

Exception:

System.InvalidOperationException: Queue empty.
   at System.Collections.Generic.Queue`1.ThrowForEmptyQueue()
   at System.Collections.Generic.Queue`1.Dequeue()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadKey()
   at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)

Additional Context: This occurred during normal usage in VSCode. It seems to be related to command history navigation or tab completion. No custom PSReadLine configuration was applied.

Environment data
Inside VSCode terminal:
PS Version: 7.5.0
PS HostName: Visual Studio Code Host
PSReadLine Version: 2.4.0-beta0
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 195
BufferHeight: 11

Windows Terminal with Powershell 7:

PS Version: 7.5.1
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.3.6
PSReadLine EditMode: Windows
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 115
BufferHeight: 65
Steps to reproduce
  • Open VSCode with PowerShell terminal.
  • Run a series of commands involving pip, get-module, and remove-module.
  • Use arrow keys to navigate command history.
  • Observe crash.

Note: this seems to occur when using vscode with normal editor input, the workflow I was using on the day of the exception ran multiple pwsh instances because of pester test execution in the test extension. not sure if this was a contributing factor though.

Expected behavior

No exception, VSCode does not exhibit odd behaviors like starting a debugging session when any key on the keyboard is pressed

Actual behavior

VSCode starts running arbitrary debugging sessions (F5) and at some point the Exception occurs.

Lingua principale
C#
Stelle
4.4k
Fork
341
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PowerShell/PSReadLine

Tutte le issue di PowerShell/PSReadLine

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.