PowerShell / vscode-powershell

Provides PowerShell language and debugging support for Visual Studio Code

Home Page:https://marketplace.visualstudio.com/items/ms-vscode.PowerShell

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Infinite loop when closing PowerShell process while being attached by the Visual Studio Code debugger

manison opened this issue · comments

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

Oops, something went wrong.
Please report this bug with ALL the details below, including both the 'Environment' and 'Exception' sections.
Please report on GitHub: https://github.com/PowerShell/PSReadLine/issues/new?template=Bug_Report.yaml
Thank you!

An error occurred while running the REPL loop:
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken, Nullable`1 lastRunStatus)   
   at Microsoft.PowerShell.EditorServices.Services.PowerShell.Console.PsrlReadLine.InvokePSReadLine(CancellationToken cancellationToken) in D:\a\_work\1\s\src\PowerShellEditorServices\Services\PowerShell\Console\PsrlReadLine.cs:line 48
   at Microsoft.PowerShell.EditorServices.Services.PowerShell.Execution.SynchronousTask`1.ExecuteSynchronously(CancellationToken executorCancellationToken) in D:\a\_work\1\s\src\PowerShellEditorServices\Services\PowerShell\Execution\SynchronousTask.cs:line 92
--- End of stack trace from previous location ---
   at Microsoft.PowerShell.EditorServices.Services.PowerShell.Host.PsesInternalHost.InvokeReadLine(CancellationToken cancellationToken) in D:\a\_work\1\s\src\PowerShellEditorServices\Services\PowerShell\Host\PsesInternalHost.cs:line 1248
   at Microsoft.PowerShell.EditorServices.Services.PowerShell.Host.PsesInternalHost.DoOneRepl(CancellationToken cancellationToken) in D:\a\_work\1\s\src\PowerShellEditorServices\Services\PowerShell\Host\PsesInternalHost.cs:line 1149

Screenshot

N/A

Environment data

PS Version: 7.4.0
PS HostName: ConsoleHost (Windows Terminal)
PSReadLine Version: 2.3.4
PSReadLine EditMode: Windows
OS: 10.0.22621.1 (WinBuild.160101.0800)
BufferWidth: 120
BufferHeight: 30

Steps to reproduce

  1. Install PowerShell extension in Visual Studio Code (version v2024.0.0)
  2. Prepare the launch.json with the following content:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "PowerShell Attach to Host Process",
            "type": "PowerShell",
            "request": "attach"
        }
    ]
}
  1. Start a new instance of the PowerShell
  2. Attach to it using the Visual Studio Code
  3. Wait till the debugger attaches to the process
  4. Close the PowerShell

Expected behavior

No exception

Actual behavior

When the PowerShell process being currently attached by the Visual Studio debugger is closed, the infinite exception loop occurs.

The stack indicates the issue happens within the PowerShell Editor Service, so transfer the issue here.

Thanks we are able to repro this, it may be related to/fixed by upcoming breakpoint sync fixes

This issue has been labeled as needing fix verification and has not had any activity a week. It has been closed for housekeeping purposes.

This issue is reproducible in the most recent v2024.3.0-preview.
Should I open another issue or can this be reopened and revisited?

@andyleejordan @SeeminglyScience @JustinGrote mentioning you as involved in another recent debugging issue discussion.

Here is what I see, endlessly scrolling:
image

It was accidentally closed. We're thinking it will be fixed by an in progress PR.