Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory leak until the system freezes #2171

Open
6 tasks done
DarkLite1 opened this issue Aug 16, 2024 · 9 comments
Open
6 tasks done

Memory leak until the system freezes #2171

DarkLite1 opened this issue Aug 16, 2024 · 9 comments
Labels
Area-Script Analysis Issue-Enhancement A feature request (enhancement). Up for Grabs Will shepherd PRs.

Comments

@DarkLite1
Copy link

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 PowerShell Editor Services itself and does not reproduce in a standalone PowerShell instance, and is not an issue with my editor.
  • I have verified that I am using the latest version of PowerShell Editor Services.
  • If this is a security issue, I have read the security issue reporting guidance.

Summary

Every time the extension "PowerShell v2024.3.2 (pre-release)" is enabled, the memory usage goes up until the system freezes. When disabling the extension, there is no issue. Same issue with the release version "Powershell 2024.2.2".

Also reported here.

PowerShell Version

Name                           Value
----                           -----
PSVersion                      7.4.4
PSEdition                      Core
GitCommitId                    7.4.4
OS                             Microsoft Windows 10.0.20348
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Editor Version

vs code 1.92.1
eaa41d57266683296de7d118f574d0c2652e1fc4
x64

Name             : ConsoleHost
Version          : 7.4.4
InstanceId       : b1eb55a6-5f37-4759-bc50-59721354e6d5
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

PowerShell Editor Services Version

The one built-in to "PowerShell v2024.3.2 (pre-release)" and "Powershell 2024.2.2".

Steps to Reproduce

Every time the extension "PowerShell v2024.3.2 (pre-release)" is enabled, the memory usage goes up until the system freezes. When disabling the extension, there is no issue. Same issue with the release version "Powershell 2024.2.2".

Simply enable the extension, open VS Code and wait for the RAM to be fully consumed. No coding required.

Visuals

Screenshot 2024-08-14 090503
Screenshot 2024-08-14 085556
Screenshot 2024-08-14 085522
Screenshot 2024-08-14 085436
Screenshot 2024-08-14 085401
Screenshot 2024-08-14 085357

Logs

1723619554-68a1cfd5-1a3e-43e5-9fc4-7e8fa8a133561723619552104.zip

@DarkLite1 DarkLite1 added Issue-Bug A bug to squash. Needs: Triage Maintainer attention needed! labels Aug 16, 2024
@andyleejordan
Copy link
Member

Hi, can you try setting "enable script analysis on open files only" and let me know if it's still reproduces? We often see a large memory increase like this when a user has opened a folder that contains many thousands of PowerShell scripts (such as your home folder) and the default setting to analyze them all just takes a lot of memory.

@DarkLite1
Copy link
Author

Thank you @andyleejordan , that seems to solve the issue. Very annoying... Thx for the workaround.

I'll leave this one open as I think this should never happen, a freezing system because of a setting that is not set.

@andyleejordan
Copy link
Member

@SydneyhSmith @SeeminglyScience what do we think about changing this setting to be enabled by default? I think it would fix more issues than it would cause.

@SydneyhSmith
Copy link
Collaborator

I would be interested to test that out in preview and see if there is unexpected behavior

@JustinGrote
Copy link
Collaborator

My two cents would be to not make it default behavior, but have an upper limit of files being analyzed where it pops up a warning and offers to turn off the setting, the upper limit being another setting thats configurable, maybe start at 500 or something.

@DarkLite1
Copy link
Author

My two cents would be to not make it default behavior, but have an upper limit of files being analyzed where it pops up a warning and offers to turn off the setting, the upper limit being another setting thats configurable, maybe start at 500 or something.

Or simply check the memory consumption once in a while for pwsh.exe process launched by the extension. If it goes above 2 GB, something is definitely wrong.

@JustinGrote
Copy link
Collaborator

My two cents would be to not make it default behavior, but have an upper limit of files being analyzed where it pops up a warning and offers to turn off the setting, the upper limit being another setting thats configurable, maybe start at 500 or something.

Or simply check the memory consumption once in a while for pwsh.exe process launched by the extension. If it goes above 2 GB, something is definitely wrong.

Not necessarily, since scripts run in there and the REPL runs in there, I could very well be running a script that consumes 2GB, the extension process is not used simply for extension purposes (though we often wish it would, this is necessary to provide ISE-like behavior)

@andyleejordan
Copy link
Member

My two cents would be to not make it default behavior, but have an upper limit of files being analyzed where it pops up a warning and offers to turn off the setting, the upper limit being another setting thats configurable, maybe start at 500 or something.

You know, I would happily accept a PR for this 🤠

@JustinGrote
Copy link
Collaborator

@andyleejordan I'll put it on the very long to-do list :)

@JustinGrote JustinGrote added Up for Grabs Will shepherd PRs. Area-Script Analysis Issue-Enhancement A feature request (enhancement). and removed Needs: Triage Maintainer attention needed! Issue-Bug A bug to squash. labels Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Script Analysis Issue-Enhancement A feature request (enhancement). Up for Grabs Will shepherd PRs.
Projects
None yet
Development

No branches or pull requests

4 participants