Skip to content

Extension terminal can accidentally be spawned twice #4160

Closed
@andyleejordan

Description

@andyleejordan

Prerequisites

  • I have written a descriptive issue title.
  • I have searched all open and closed issues to ensure it has not already been reported.
  • I have read the troubleshooting guide.
  • I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
  • I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
  • If this is a security issue, I have read the security issue reporting guidance.

Summary

As reported on the Discord by @PrzemyslawKlys, it is possible to spawn the extension terminal twice on accident. If the extension is in the process of starting, and another event initiates a start, two terminals will be spawned. The start() function of the session manager is not re-entrant, but as there are multiple events that may enter it, it needs a simple lock that waits for the original call to finish if it's called while already starting.

PowerShell Version

N/A

Visual Studio Code Version

N/A

Extension Version

v2022.8.5

Steps to Reproduce

While extension is still starting, do something like run a PowerShell debug config which also starts the extension.

Visuals

No response

Logs

No response

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions