`Processing lsp` never exits and leaves orphaned processes
@overcast302 is already working on this.
Since Oct 10, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start in java/src/processing/mode/java/lsp/PdeLanguageServer.java, looking at exit(), which only prints a line, and at main(), which discards the future returned by launcher.startListening(). Check what happens when stdin reaches EOF and how the process should end then. Done means the LSP process exits when VS Code closes or dies, which you can confirm with pgrep -af 'Processing lsp' after quitting the editor.
Written by the indexing model from the issue text.
Description
Most appropriate sub-area of Processing 4?
Other (specify if possible)
Processing version
4.5.7 (AUR processing-bin)
Operating system
Arch Linux x86_64
Bug description
The LSP server never terminates when the client goes away. This way, after closing Visual Studio Code with official Processing extension via File > Exit (or Ctrl+Q), the Processing LSP process is left running. The process also survives abrupt client death, since nothing on the server side reacts to the client disappearing.
Steps to reproduce this
- Install Processing 4.5.7 and the official Processing Visual Studio Code extension.
- Open Visual Studio Code
- Quit Visual Studio Code with Ctrl+Q (File > Exit).
- Run:
pgrep -af 'Processing lsp' - The process is still running.
snippet
No response
Additional context
PdeLanguageServer.exit() only prints a line and never calls System.exit(). PdeLanguageServer.main() also ignores the future returned by launcher.startListening(), so nothing happens when stdin reaches EOF. As a result, nothing in the server can end the LSP process when the client disappears.
Would you like to work on the issue?
Yes, I’d like to help with this
- Dominant language
- Java
- Stars
- 513
- Forks
- 183
- Avg merge
- 4h 6m
- Merged PRs (30d)
- 4
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from processing/processing4
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
processing/processing4#1554 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
processing/processing4#1515 · 1 reaction ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 55/100
processing/processing4#1573 · 3 comments ·
-
startup errorOpen
Difficulty 4/5 3-5 days Newbie friendliness 25/100
processing/processing4#1569 · 7 comments ·
-
Binaries under bin directory lack executable permissions for the snap and .deb packages for LinuxPossibly taken @catilac claimed this 22 days ago. Openbug
processing/processing4#1567 · 3 comments · 1 reaction · 1 assignee ·
All issues in processing/processing4
Similar issues
-
[Bug] The producer summary counts an unreported client version as a second version and warns about a version mixPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
apache/rocketmq-dashboard#6110 ·
Maintainers usually reply within 4 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
apache/doris-flink-connector#707 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
Maintainers usually reply within 1 day
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched originsPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
floci-io/floci#5369 · 1 comment ·
Maintainers usually reply within 1 day
-
securityHeaders replaces a route's own Content-Security-Policy (0.9.9; weakens embedders' pages)Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day