richterger / Perl-LanguageServer

Language Server for Perl
Other
225 stars 52 forks source link

VSCode Perl::LanguageServer causes a process that consumes CPU #200

Open adefaria opened 1 year ago

adefaria commented 1 year ago

When running Perl::LanguageServer inside of VSCode there is a master perl that consumes about 100% of a CPU. Initially, this process fires off a number of pls processes, apparently parsing all of the Perl modules it can find and communicating that data to the master perl process bloating it up to 1.5G in my case. OK, I understand that. There's a lot of Perl code here. However, after it settles down and the pls processes go away the master perl process continues to chew on about 100% of one CPU, even if VSCode is essentially idle.

top - 10:47:37 up 14:32,  1 user,  load average: 0.09, 0.19, 0.22
Tasks: 204 total,   3 running, 201 sleeping,   0 stopped,   0 zombie
%Cpu(s): 22.5 us,  4.3 sy,  0.1 ni, 72.8 id,  0.0 wa,  0.2 hi,  0.1 si,  0.0 st
MiB Mem :   7685.1 total,    427.8 free,   3963.5 used,   3293.8 buff/cache
MiB Swap:   1024.0 total,    942.9 free,     81.1 used.   3405.2 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                  
   4635 root      20   0 2069884   1.5g   8496 R  99.7  20.6 863:12.92 perl                                                                                                                                                                                     
   4220 root      20   0 1070064 198816  47200 S   2.0   2.5   0:51.59 node                                                                                                                                                                                     
   2021 root      20   0  895920  97960  16820 S   1.3   1.2   2:44.30 python3                      

Closing VSCode causes the master perl process to go away.

An strace of the master perl reveals:

select(16, [3 5 8], [], NULL, {tv_sec=3600, tv_usec=0}) = 1 (in [5], left {tv_sec=3599, tv_usec=999999})
select(16, [3 5 8], [], NULL, {tv_sec=3600, tv_usec=0}) = 1 (in [5], left {tv_sec=3599, tv_usec=999999})
select(16, [3 5 8], [], NULL, {tv_sec=3600, tv_usec=0}) = 1 (in [5], left {tv_sec=3599, tv_usec=999999})
select(16, [3 5 8], [], NULL, {tv_sec=3600, tv_usec=0}) = 1 (in [5], left {tv_sec=3599, tv_usec=999999})
select(16, [3 5 8], [], NULL, {tv_sec=3600, tv_usec=0}) = 1 (in [5], left {tv_sec=3599, tv_usec=999999})

over and over again.

Perl version: 5.36.0 OS: CloudLinux: 8.8 (also experienced on AlmaLinux 8.8 and CentOS 7)

richterger commented 1 year ago

Could you set the log-level to 2 and look in the Perl-LanguageServer output pane of vscode if there is anything going on? Please post the output here.

adefaria commented 12 months ago

BTW, as I said various pls processes start and apparently parse all .pl and .pm files found in the current directory. This bloats the perl process significantly. Is there a way to configure it such that certain directory trees are ignored? For example, we use a specific version of Perl that is contained in a directory called 3rdparty. I don't want to debug that stuff but would like to exclude it from this process.

Here's the log:

[08:16:53.853] Log Level: 2
[08:16:53.861] VS Code version: 1.84.2
[08:16:53.861] Remote-SSH version: remote-ssh@0.107.0
[08:16:53.861] linux x64
[08:16:53.861] SSH Resolver called for "ssh-remote+sandbox", attempt 1
[08:16:53.862] "remote.SSH.useLocalServer": true
[08:16:53.862] "remote.SSH.useExecServer": false
[08:16:53.862] "remote.SSH.path": undefined
[08:16:53.862] "remote.SSH.configFile": undefined
[08:16:53.862] "remote.SSH.useFlock": true
[08:16:53.862] "remote.SSH.lockfilesInTmp": false
[08:16:53.862] "remote.SSH.localServerDownload": auto
[08:16:53.863] "remote.SSH.remoteServerListenOnSocket": false
[08:16:53.863] "remote.SSH.showLoginTerminal": false
[08:16:53.863] "remote.SSH.defaultExtensions": []
[08:16:53.863] "remote.SSH.loglevel": 2
[08:16:53.868] "remote.SSH.enableDynamicForwarding": true
[08:16:53.868] "remote.SSH.enableRemoteCommand": false
[08:16:53.868] "remote.SSH.serverPickPortsFromRange": {}
[08:16:53.868] "remote.SSH.serverInstallPath": {}
[08:16:53.872] SSH Resolver called for host: sandbox
[08:16:53.872] Setting up SSH remote "sandbox"
[08:16:53.874] Acquiring local install lock: /tmp/vscode-remote-ssh-da1fd924-install.lock
[08:16:53.875] Looking for existing server data file at /home/andrew/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-da1fd924-1a5daa3a0231a0fbba4f14db7ec463cf99d7768e-0.107.0-tr/data.json
[08:16:53.876] Using commit id "1a5daa3a0231a0fbba4f14db7ec463cf99d7768e" and quality "stable" for server
[08:16:53.878] Install and start server if needed
[08:16:53.880] PATH: .:/opt/clearscm/bin:/opt/clearscm/cc:/opt/clearscm/cq:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/games:/usr/bin/X11:/opt/mycroft-core/bin:/usr/sbin:/snap/bin:/System/bin
[08:16:53.880] Checking ssh with "ssh -V"
[08:16:53.890] > OpenSSH_8.9p1 Ubuntu-3ubuntu0.4, OpenSSL 3.0.2 15 Mar 2022

[08:16:53.893] askpass server listening on /run/user/1000/vscode-ssh-askpass-85ef823471decc66e8f3a53eff36003334099af9.sock
[08:16:53.893] Spawning local server with {"serverId":1,"ipcHandlePath":"/run/user/1000/vscode-ssh-askpass-f28236a0f48a18e2cf5936efe033271cfda7c952.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","34253","-o","ConnectTimeout=15","sandbox","bash"],"serverDataFolderName":".vscode-server","dataFilePath":"/home/andrew/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-da1fd924-1a5daa3a0231a0fbba4f14db7ec463cf99d7768e-0.107.0-tr/data.json"}
[08:16:53.894] Local server env: {"SSH_AUTH_SOCK":"/run/user/1000/keyring/ssh","SHELL":"/bin/bash","DISPLAY":":1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/home/andrew/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.0/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/usr/share/code/code","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"--ms-enable-electron-run-as-node","VSCODE_SSH_ASKPASS_MAIN":"/home/andrew/.vscode/extensions/ms-vscode-remote.remote-ssh-0.107.0/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/run/user/1000/vscode-ssh-askpass-85ef823471decc66e8f3a53eff36003334099af9.sock"}
[08:16:53.899] Spawned 1306389
[08:16:53.992] > local-server-1> Running ssh connection command: "-v -T -D 34253 -o ConnectTimeout=15 sandbox bash"
[08:16:53.996] > local-server-1> Spawned ssh, pid=1306398
[08:16:54.000] stderr> OpenSSH_8.9p1 Ubuntu-3ubuntu0.4, OpenSSL 3.0.2 15 Mar 2022
[08:16:54.257] stderr> debug1: Server host key: ssh-ed25519 SHA256:HG1YQEG2T7IGjzAneWFZ5Q0t7nZdGDe++jA1JsLAo0g
[08:16:54.258] stderr> Warning: Permanently added 'sandbox' (ED25519) to the list of known hosts.
[08:16:54.497] stderr> No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1000)
[08:16:54.497] stderr> 
[08:16:54.497] stderr> 
[08:16:54.498] stderr> No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1000)
[08:16:54.498] stderr> 
[08:16:54.498] stderr> 
[08:16:54.632] stderr> Authenticated to sandbox ([10.2.97.236]:22) using "publickey".
[08:16:54.965] > ready: 9e669d03ddb1
[08:16:55.033] > Linux 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023
[08:16:55.033] Platform: linux
[08:16:55.093] > /bin/bash
[08:16:55.093] Shell: bash
[08:16:55.093] Creating bash subshell inside "bash"
[08:16:55.153] > bash version:  4.4.20(1)-release
[08:16:55.207] > bash version:  4.4.20(1)-release
[08:16:55.288] > 9e669d03ddb1: running
[08:16:55.314] > Acquiring lock on /root/.vscode-server/bin/1a5daa3a0231a0fbba4f14db7ec463cf99d7768e/vscode-remote-lock.root.1a5daa3a0231a0fbba4f14db7ec463cf99d7768e
> Found existing installation at /root/.vscode-server/bin/1a5daa3a0231a0fbba4f14db7ec463cf99d7768e...
> Checking /root/.vscode-server/.1a5daa3a0231a0fbba4f14db7ec463cf99d7768e.log and /root/.vscode-server/.1a5daa3a0231a0fbba4f14db7ec463cf99d7768e.pid for a running server
> Looking for server with pid: 686756
[08:16:55.325] > Found running server...
[08:16:55.326] >  
> *
> * Visual Studio Code Server
> *
> * By using the software, you agree to
> * the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
> * the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
> *
>  
[08:16:55.335] > Checking server status on port 44709 with wget
[08:16:55.374] > 9e669d03ddb1: start
> SSH_AUTH_SOCK==/tmp/ssh-wOWUwSGcUe/agent.687346==
> DISPLAY==localhost:10.0==
> webUiAccessToken====
> listeningOn==44709==
> osReleaseId==cloudlinux==
> arch==x86_64==
> vscodeArch==x64==
> bitness==64==
> tmpDir==/run/user/0==
> platform==linux==
> unpackResult====
> didLocalDownload==0==
> downloadTime====
> installTime====
> extInstallTime====
> serverStartTime====
> connectionToken==aaa1111a-a1a1-111a-a111-1a111a1a11a1==
> 9e669d03ddb1: end
[08:16:55.375] Received install output: 
SSH_AUTH_SOCK==/tmp/ssh-wOWUwSGcUe/agent.687346==
DISPLAY==localhost:10.0==
webUiAccessToken====
listeningOn==44709==
osReleaseId==cloudlinux==
arch==x86_64==
vscodeArch==x64==
bitness==64==
tmpDir==/run/user/0==
platform==linux==
unpackResult====
didLocalDownload==0==
downloadTime====
installTime====
extInstallTime====
serverStartTime====
connectionToken==aaa1111a-a1a1-111a-a111-1a111a1a11a1==

[08:16:55.375] Remote server is listening on port 44709
[08:16:55.375] Parsed server configuration: {"serverConfiguration":{"remoteListeningOn":{"port":44709},"osReleaseId":"cloudlinux","arch":"x86_64","webUiAccessToken":"","sshAuthSock":"/tmp/ssh-wOWUwSGcUe/agent.687346","display":"localhost:10.0","tmpDir":"/run/user/0","platform":"linux","connectionToken":"aaa1111a-a1a1-111a-a111-1a111a1a11a1"},"installUnpackCode":""}
[08:16:55.376] Persisting server connection details to /home/andrew/.config/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-da1fd924-1a5daa3a0231a0fbba4f14db7ec463cf99d7768e-0.107.0-tr/data.json
[08:16:55.378] Starting forwarding server. local port 38873 -> socksPort 34253 -> remotePort 44709
[08:16:55.378] Forwarding server listening on port 38873
[08:16:55.379] Waiting for ssh tunnel to be ready
[08:16:55.379] [Forwarding server port 38873] Got connection 0
[08:16:55.380] Tunneled port 44709 to local port 38873
[08:16:55.380] Resolved "ssh-remote+sandbox" to "port 38873"
[08:16:55.381] Updating $SSH_AUTH_SOCK: ln -f -s "/tmp/ssh-wOWUwSGcUe/agent.687346" "/run/user/0/vscode-ssh-auth-sock-245585351"
[08:16:55.381] Using cwd: vscode-remote://ssh-remote%2Bsandbox/
[08:16:55.381] Remote extension host environment: {"SSH_AUTH_SOCK":"/run/user/0/vscode-ssh-auth-sock-245585351","DISPLAY":"localhost:10.0"}
[08:16:55.387] ------

[08:16:55.414] [Forwarding server port 38873] Got connection 1
[08:16:55.548] [Forwarding server port 38873] Got connection 2
[08:16:56.806] [Forwarding server port 38873] Got connection 3
[08:16:58.614] "Update SSH_AUTH_SOCK" terminal command done
[08:17:04.569] [Forwarding server port 38873] Got connection 4
adefaria commented 11 months ago

For now, I have turned it off pls by removing the execute bit. The problem is that over time it eventually consumes all of my memory causing my sandbox to hand which is not conducive to productivity. I'm not sure what else to do or what else to supply.

richterger commented 11 months ago

This is the log of remotessh. Could you please switch the output to Perl LanguageServer and resend the output

adefaria commented 11 months ago

Sorry. Never knew that the Output tab had things to switch to but that makes sense. Ok, after restarting vscode and letting it parse the initial files until it settled down to just one Perl process taking 99.3% of the CPU, the Output tab for Perl Language Server contains:

tcp server start listen on port 13604
LS: apply_all_roles (Perl::LanguageServer=HASH(0xe45440), Perl::LanguageServer::Methods, Perl/LanguageServer/Methods.pm)
LS: 
Version of IDE/Editor plugin is 2.6.1
Version of Perl::LanguageServer is 2.3.0
Please make sure you run matching versions of the plugin and the Perl::LanguageServer module
Use 'cpan Perl::LanguageServer' to install the newest version of the Perl::LanguageServer module

LS: apply_all_roles (Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0xe45440), Perl::LanguageServer::Methods::workspace, Perl/LanguageServer/Methods/workspace.pm)
LS: perl = do {
  my $a = {
    cacheDir               => undef,
    containerArgs          => undef,
    containerCmd           => undef,
    containerMode          => "exec",
    containerName          => undef,
    cwd                    => "",
    debugAdapterPort       => 13603,
    debugAdapterPortRange  => 100,
    disableCache           => bless(do{\(my $o = 0)}, "JSON::PP::Boolean"),
    disablePassEnv         => undef,
    enable                 => bless(do{\(my $o = 1)}, "JSON::PP::Boolean"),
    env                    => undef,
    fileFilter             => undef,
    ignoreDirs             => undef,
    inc                    => [],
    logFile                => undef,
    logLevel               => 0,
    pathMap                => undef,
    perlCmd                => "/usr/local/cpanel/3rdparty/bin/perl",
    perlcritic             => { enabled => 'fix', perlcriticrc => "" },
    perlInc                => ["/opt/clearscm/lib"],
    perltidyrc             => "",
    pls                    => "",
    plsargs                => [],
    showLocalVars          => 'fix',
    sshAddr                => undef,
    sshArgs                => undef,
    sshCmd                 => undef,
    sshPort                => undef,
    sshUser                => "root",
    sshWorkspaceRoot       => "/usr/local/cpanel",
    syntax                 => { enabled => 'fix', perl => "" },
    useTaintForSyntaxCheck => 'fix',
  };
  $a->{perlcritic}{enabled} = \${$a->{disableCache}};
  $a->{showLocalVars} = \${$a->{disableCache}};
  $a->{syntax}{enabled} = \${$a->{disableCache}};
  $a->{useTaintForSyntaxCheck} = \${$a->{disableCache}};
  $a;
}
LS: path_map = [["file:///usr/local/cpanel", "file:///usr/local/cpanel"]]
LS: perlinc = ["/opt/clearscm/lib"]
LS: file_filter_regex = "(?:\\.pm|\\.pl)\$"
LS: ignore_dir = { ".git" => 1, ".svn" => 1, ".vscode" => 1 }
state_dir = /usr/local/cpanel/.vscode/perl-lang
LS: apply_all_roles (Moose::Meta::Class::__ANON__::SERIAL::2=HASH(0xe45440), Perl::LanguageServer::Methods::textDocument, Perl/LanguageServer/Methods/textDocument.pm)
LS: background_parser folders = { "file:///usr/local/cpanel" => "/usr/local/cpanel" }
LS: loaded 100 files, parsed  files, 100 files
LS: loaded 200 files, parsed  files, 200 files
LS: loaded 300 files, parsed  files, 300 files
LS: loaded 400 files, parsed  files, 400 files
LS: loaded 500 files, parsed  files, 500 files
LS: loaded 600 files, parsed  files, 600 files
LS: loaded 700 files, parsed  files, 700 files
LS: loaded 800 files, parsed  files, 800 files
LS: loaded 900 files, parsed  files, 900 files
LS: loaded 1000 files, parsed  files, 1000 files
LS: loaded 1100 files, parsed  files, 1100 files
LS: loaded 1200 files, parsed  files, 1200 files
LS: loaded 1300 files, parsed  files, 1300 files
LS: loaded 1400 files, parsed  files, 1400 files
LS: loaded 1500 files, parsed  files, 1500 files
LS: loaded 1600 files, parsed  files, 1600 files
LS: loaded 1700 files, parsed  files, 1700 files
LS: loaded 1800 files, parsed  files, 1800 files
LS: loaded 1900 files, parsed  files, 1900 files
LS: loaded 2000 files, parsed  files, 2000 files
LS: loaded 2100 files, parsed  files, 2100 files
LS: loaded 2200 files, parsed  files, 2200 files
LS: loaded 2300 files, parsed  files, 2300 files
LS: loaded 2400 files, parsed  files, 2400 files
LS: loaded 2500 files, parsed  files, 2500 files
LS: loaded 2600 files, parsed  files, 2600 files
LS: loaded 2700 files, parsed  files, 2700 files
LS: loaded 2800 files, parsed  files, 2800 files
LS: loaded 2900 files, parsed  files, 2900 files
LS: loaded 3000 files, parsed  files, 3000 files
LS: loaded 3100 files, parsed  files, 3100 files
LS: loaded 3200 files, parsed  files, 3200 files
LS: loaded 3300 files, parsed  files, 3300 files
LS: loaded 3400 files, parsed  files, 3400 files
LS: loaded 3500 files, parsed  files, 3500 files
LS: loaded 3600 files, parsed  files, 3600 files
LS: loaded 3700 files, parsed  files, 3700 files
LS: loaded 3800 files, parsed  files, 3800 files
LS: loaded 3900 files, parsed  files, 3900 files
LS: loaded 4000 files, parsed  files, 4000 files
LS: loaded 4100 files, parsed  files, 4100 files
LS: loaded 4200 files, parsed  files, 4200 files
LS: loaded 4300 files, parsed  files, 4300 files
LS: loaded 4400 files, parsed  files, 4400 files
LS: loaded 4500 files, parsed  files, 4500 files
LS: loaded 4600 files, parsed  files, 4600 files
LS: loaded 4700 files, parsed  files, 4700 files
LS: loaded 4800 files, parsed  files, 4800 files
LS: loaded 4900 files, parsed  files, 4900 files
LS: loaded 5000 files, parsed  files, 5000 files
LS: loaded 5100 files, parsed  files, 5100 files
LS: loaded 5200 files, parsed  files, 5200 files
LS: loaded 5300 files, parsed  files, 5300 files
LS: loaded 5400 files, parsed  files, 5400 files
LS: loaded 5500 files, parsed  files, 5500 files
LS: loaded 5600 files, parsed  files, 5600 files
LS: loaded 5700 files, parsed  files, 5700 files
LS: loaded 5800 files, parsed  files, 5800 files
LS: loaded 5900 files, parsed  files, 5900 files
LS: loaded 6000 files, parsed  files, 6000 files
LS: loaded 6100 files, parsed  files, 6100 files
LS: loaded 6200 files, parsed  files, 6200 files
LS: loaded 6300 files, parsed  files, 6300 files
LS: loaded 6400 files, parsed  files, 6400 files
LS: loaded 6500 files, parsed  files, 6500 files
LS: loaded 6600 files, parsed  files, 6600 files
LS: loaded 6700 files, parsed  files, 6700 files
LS: loaded 6800 files, parsed  files, 6800 files
LS: loaded 6900 files, parsed  files, 6900 files
LS: loaded 7000 files, parsed  files, 7000 files
LS: loaded 7100 files, parsed  files, 7100 files
LS: loaded 7200 files, parsed  files, 7200 files
LS: loaded 7300 files, parsed  files, 7300 files
LS: loaded 7400 files, parsed  files, 7400 files
LS: loaded 7500 files, parsed  files, 7500 files
LS: loaded 7600 files, parsed  files, 7600 files
LS: loaded 7700 files, parsed  files, 7700 files
LS: loaded 7800 files, parsed  files, 7800 files
LS: loaded 7900 files, parsed  files, 7900 files
LS: loaded 8000 files, parsed  files, 8000 files
LS: loaded 8100 files, parsed  files, 8100 files
LS: loaded 8200 files, parsed  files, 8200 files
LS: loaded 8300 files, parsed  files, 8300 files
LS: loaded 8400 files, parsed  files, 8400 files
LS: loaded 8500 files, parsed  files, 8500 files
LS: loaded 8600 files, parsed  files, 8600 files
LS: loaded 8700 files, parsed  files, 8700 files
LS: loaded 8800 files, parsed  files, 8800 files
LS: loaded 8900 files, parsed  files, 8900 files
LS: loaded 9000 files, parsed  files, 9000 files
LS: loaded 9100 files, parsed  files, 9100 files
LS: loaded 9200 files, parsed  files, 9200 files
LS: loaded 9300 files, parsed  files, 9300 files
LS: loaded 9400 files, parsed  files, 9400 files
LS: loaded 9500 files, parsed  files, 9500 files
LS: loaded 9600 files, parsed  files, 9600 files
LS: loaded 9700 files, parsed  files, 9700 files
LS: loaded 9800 files, parsed  files, 9800 files
LS: loaded 9900 files, parsed  files, 9900 files
LS: loaded 10000 files, parsed  files, 10000 files
LS: loaded 10100 files, parsed  files, 10100 files
LS: loaded 10200 files, parsed  files, 10200 files
LS: loaded 10300 files, parsed  files, 10300 files
LS: loaded 10400 files, parsed  files, 10400 files
LS: loaded 10500 files, parsed  files, 10500 files
LS: loaded 10600 files, parsed  files, 10600 files
LS: loaded 10700 files, parsed  files, 10700 files
LS: loaded 10800 files, parsed  files, 10800 files
LS: loaded 10900 files, parsed  files, 10900 files
LS: loaded 11000 files, parsed  files, 11000 files
LS: loaded 11100 files, parsed  files, 11100 files
LS: loaded 11200 files, parsed  files, 11200 files
LS: loaded 11300 files, parsed  files, 11300 files
LS: loaded 11400 files, parsed  files, 11400 files
LS: loaded 11500 files, parsed  files, 11500 files
LS: loaded 11600 files, parsed  files, 11600 files
LS: loaded 11700 files, parsed  files, 11700 files
LS: loaded 11800 files, parsed  files, 11800 files
LS: loaded 11900 files, parsed  files, 11900 files
LS: loaded 12000 files, parsed  files, 12000 files
LS: loaded 12100 files, parsed  files, 12100 files
LS: loaded 12199 files, parsed 1 files, 12200 files
LS: loaded 12299 files, parsed 1 files, 12300 files
LS: loaded 12399 files, parsed 1 files, 12400 files
LS: loaded 12499 files, parsed 1 files, 12500 files
LS: loaded 12599 files, parsed 1 files, 12600 files
LS: loaded 12699 files, parsed 1 files, 12700 files
LS: loaded 12799 files, parsed 1 files, 12800 files
LS: loaded 12899 files, parsed 1 files, 12900 files
LS: loaded 12999 files, parsed 1 files, 13000 files
LS: loaded 13099 files, parsed 1 files, 13100 files
LS: loaded 13199 files, parsed 1 files, 13200 files
LS: loaded 13299 files, parsed 1 files, 13300 files
LS: loaded 13399 files, parsed 1 files, 13400 files
LS: loaded 13499 files, parsed 1 files, 13500 files
LS: loaded 13599 files, parsed 1 files, 13600 files
LS: loaded 13699 files, parsed 1 files, 13700 files
LS: loaded 13799 files, parsed 1 files, 13800 files
LS: loaded 13899 files, parsed 1 files, 13900 files
LS: loaded 13999 files, parsed 1 files, 14000 files
LS: loaded 14099 files, parsed 1 files, 14100 files
LS: loaded 14199 files, parsed 1 files, 14200 files
LS: loaded 14299 files, parsed 1 files, 14300 files
LS: loaded 14399 files, parsed 1 files, 14400 files
LS: loaded 14499 files, parsed 1 files, 14500 files
LS: loaded 14599 files, parsed 1 files, 14600 files
LS: loaded 14699 files, parsed 1 files, 14700 files
LS: loaded 14799 files, parsed 1 files, 14800 files
LS: loaded 14899 files, parsed 1 files, 14900 files
LS: loaded 14999 files, parsed 1 files, 15000 files
LS: loaded 15099 files, parsed 1 files, 15100 files
LS: loaded 15199 files, parsed 1 files, 15200 files
LS: loaded 15299 files, parsed 1 files, 15300 files
LS: loaded 15399 files, parsed 1 files, 15400 files
LS: loaded 15499 files, parsed 1 files, 15500 files
LS: loaded 15599 files, parsed 1 files, 15600 files
LS: loaded 15699 files, parsed 1 files, 15700 files
LS: loaded 15799 files, parsed 1 files, 15800 files
LS: loaded 15899 files, parsed 1 files, 15900 files
LS: loaded 15998 files, parsed 2 files, 16000 files
LS: loaded 16098 files, parsed 2 files, 16100 files
LS: loaded 16198 files, parsed 2 files, 16200 files
LS: loaded 16298 files, parsed 2 files, 16300 files
LS: loaded 16398 files, parsed 2 files, 16400 files
LS: loaded 16498 files, parsed 2 files, 16500 files
LS: loaded 16598 files, parsed 2 files, 16600 files
LS: loaded 16698 files, parsed 2 files, 16700 files
LS: loaded 16798 files, parsed 2 files, 16800 files
LS: loaded 16898 files, parsed 2 files, 16900 files
LS: loaded 16998 files, parsed 2 files, 17000 files
LS: loaded 17098 files, parsed 2 files, 17100 files
LS: loaded 17198 files, parsed 2 files, 17200 files
LS: loaded 17298 files, parsed 2 files, 17300 files
LS: loaded 17398 files, parsed 2 files, 17400 files
LS: loaded 17498 files, parsed 2 files, 17500 files
LS: loaded 17598 files, parsed 2 files, 17600 files
LS: loaded 17698 files, parsed 2 files, 17700 files
LS: loaded 17798 files, parsed 2 files, 17800 files
LS: loaded 17898 files, parsed 2 files, 17900 files
LS: loaded 17998 files, parsed 2 files, 18000 files
LS: loaded 18098 files, parsed 2 files, 18100 files
LS: loaded 18198 files, parsed 2 files, 18200 files
LS: loaded 18298 files, parsed 2 files, 18300 files
LS: loaded 18398 files, parsed 2 files, 18400 files
LS: initial parsing done, loaded 18443 files, parsed 2 files, 18445 files
richterger commented 11 months ago
Version of IDE/Editor plugin is 2.6.1
Version of Perl::LanguageServer is 2.3.0

Before we continue, could you please update Perl::LanguageServer to the newest version from CPAN (2.6.1). Just running cpan Perl::LanguageServer normaly should do the upgrade. If this doesn't change anything, please in preferences for Perl::LanguageServer set the LogLevel to 2 and then repost the output.

adefaria commented 11 months ago

OK, I verified I have the correct versions. Seems I had two PLS extensions in the IDE. One from you:

2023-12-22@09:01:41

and one from FractalBoy:

2023-12-22@08:59:53

I disabled FractalBoy's, set logLevel to 2 for your extensionand restarted. I also saw this in your extension settings and removed Path Map:

2023-12-22@09:04:42

I've attached the log file Perl-LanguageServer.log

richterger commented 11 months ago

The log look fine. I stumbled about the sentence "For now, I have turned it off pls by removing the execute bit". pls is not part of Perl::LangaugeServer. So maybe it's from the other extention. Did the CPU go down, when disabling the other extention? If not, please press c inside of top so we see the full command line of the process taking up 100% cpu

adefaria commented 11 months ago

I do see a lot of pls processes running when I first start vscode. I assumed they were forked off by the perl process that later chewed up the CPU. I thought they were contributing to the problem. I've enabled the execute bit on pls.

The other extension has been removed. The CPU usage does not go down. Here's the full command line of the perl process:

/usr/local/cpanel/3rdparty/bin/perl -I/opt/clearscm/lib -MPerl::LanguageServer -e Perl::LanguageServer::run -- --port 13603 --log-level 0 --log-file  --version 2.6.2
adefaria commented 9 months ago

This is still an issue for me...