REditorSupport / REditorSupport/vscode-R

Session watcher should not rely on pid

Open
#1,391 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
Dominant language
TypeScript
Stars
1.2k
Forks
139
Avg merge
2h 46m
Merged PRs (30d)
5

Description

Is your feature request related to a problem? Please describe.
I use an HPC compute cluster(linux), and have the vscode-server running on the "head" node, while the R process runs on a "compute" node. These are actually different computers, but access the same filesystem. They have different process tables, ie, the pid of a process on the compute node can't be monitored from the head node. I feel this cluster setup is pretty common in the research community, so this issue doesn't just affect me.

Describe the solution you'd like
As the nodes on the cluster use the same filesystem, the current temp file solution should work, but there needs to be some other mechanism other than pid to monitor the status of the process, ie don't cleanup the session if the pid isn't visible to process.kill(pid, 0).

Describe alternatives you've considered
Unfortunately I can't just ssh directly into a compute node and run vscode-server there, I've definitely tried.

Additional context
I launch the R session in a compute node using a custom script that I load using the r.rterm.linux setting. It almost works, except for the above pid problem. Essentially, .vsc.attach() works perfectly, but then the vscode-R process can't see the pid, so it immediately cleans the session.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/session.ts at the linked cleanup check around line 796, and review how the custom r.rterm.linux script and .vsc.attach() affect session monitoring. Reproduce the shared-filesystem case with the R process on a separate compute node; done means the attached session remains active when its PID is invisible from vscode-server, while normal cleanup still works.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, r, typescript, vscode
Domain
developer-experience, operating-systems, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.