Skip to content

Nimlangsever + nimsuggest processes non being killed when using choosenim #184

Open
@arkanoid87

Description

@arkanoid87

TLDR; each vscode instance runs a nimlangserver process, each nim tab file runs two nimsuggest processes, when vscode is closed nimlangserver is not killed and one nimsuggest goes defunct. Repeatable steps until OOM

OS

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"

VSCode via official repo .deb

$ type code
code is /usr/bin/code
$ code --version
1.86.0
05047486b6df5eb8d44b2ecd70ea3bdf775fd937
x64

nimlangserver installed/upgraded via nimble

$ type nimlangserver 
nimlangserver is /home/arkanoid/.nimble/bin/nimlangserver
$ nimlangserver --version
1.2.0

nimsuggest installed/upgraded via nimble

$ type nimsuggest 
nimsuggest is /home/arkanoid/.nimble/bin/nimsuggest
$ nimsuggest --version
Nim Compiler Version 2.0.2 [Linux: amd64]
Compiled at 2023-12-15
Copyright (c) 2006-2023 by Andreas Rumpf

git hash: c4c44d10df8a14204a75c34e499def200589cb7c
active boot switches: -d:release -d:danger --gc:markAndSweep

minimal project (karax frontend, prologue backend, atlas scaffold): https://github.com/arkanoid87/nim_vscode_playground

Test scenario setup:

$ git clone https://github.com/arkanoid87/nim_vscode_playground
$ cd nim_vscode_playground
$ atlas install vscode_playground.nimble
$ nim frontend
$ nim backend
(optional nim run_backend)

Monitor processes (optional) run in different windows:

`watch -c "ps -ae | grep nimlangserver" `
`watch -c "ps -ae | grep nimsuggest"`
  1. killall nimlangserver && killall nimsuggest && killall code && code .: nimlangserver =+ 1
  2. open new tab for src/front/front.nim: nimsuggest += 2
  3. open new tab for src/back/back.nim: nimsuggest += 2
  4. close vscode (ensure code process not running)
  5. final: nimlangserver = 1, nimsuggest = 4 (one is )
  6. reopen vscode code . nimlangserver =+ 1
  7. open new tab for src/front/front.nim: nimsuggest += 2
  8. open new tab for src/back/back.nim: nimsuggest += 2
  9. final: nimlangserver = 2, nimsuggest = 8 (2 are )

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions