[Bug] copilot-language-server processes are left behind when Eclipse exits
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia da com.microsoft.copilot.eclipse.core/plugin.xml e dal ciclo di vita di copilot-language-server gestito tramite LSP4E; esamina l’impostazione lastDocumentDisconnectedTimeout e il percorso di arresto di OSGi. Traccia com.microsoft.copilot.eclipse.ui.CopilotUi$1 e il job di attivazione segnalato, quindi determina come si comporta la pulizia dopo un’uscita forzata della JVM. Il lavoro è completato quando l’uscita da Eclipse non lascia processi copilot-language-server orfani né lock sullo stato condiviso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Environment
- OS: RHEL 9 (x86_64), home directory on NFS
- Eclipse Version: 4.38, Java 25
- Plugin Version: 0.20.0.202607100822 (copilot-language-server 1.509.5)
Describe the bug
copilot-language-server never gets killed when Eclipse exits uncleanly. The processes
get re-parented to PID 1 and just stay there. I found 11 of them on one machine, the
oldest 8 days old, roughly 1.2 GB RSS in total. After I killed those, 3 more had piled
up within two hours of normal use.
They all look like this:
pid=<A> ppid=1 age=693280s
<eclipse-configuration>/org.eclipse.osgi/<id>/0/.cp/copilot-agent/copilot-language-server --stdio
I think the reason is lastDocumentDisconnectedTimeout="2147483647" in
com.microsoft.copilot.eclipse.core/plugin.xml. It used to be 30 and was changed to
Integer.MAX_VALUE in 2c6b5452 ("fix - Defer shutdown time to MAX integer"), with a TODO
on the same line. So LSP4E never stops the server on idle, and the only thing that can
stop it is a clean bundle stop at shutdown.
In my case shutdown was never clean, because Copilot's own activation job was stuck:
Job found still running after platform shutdown. Jobs should be canceled by the
plugin that scheduled them during shutdown:
com.microsoft.copilot.eclipse.ui.CopilotUi$1 RUNNING
com.microsoft.copilot.eclipse.ui.preferences.McpPreferencePage$1 RUNNING
so every exit leaked one more server. singleton="true" doesn't help, since the old ones
aren't children of any running IDE anymore.
To Reproduce
- Start Eclipse with the plugin and let Copilot activate.
- Get the platform into a state where it can't shut down cleanly. In my case the
activation job was blocked; killing the JVM has the same effect. pgrep -af copilot-language-server— the server is still running with ppid 1.- Repeat. They accumulate.
Expected behavior
The language server should be terminated when its IDE goes away, including on a hard
exit.
Additional context
This isn't only about wasted memory. The orphans keep holding locks on shared state
under $XDG_CONFIG_HOME/github-copilot. In our case they starved the SQLite checkpoint
on auth.db until the plugin stopped working altogether — filing that separately.
It's also self-reinforcing: a stuck activation job prevents a clean shutdown, which
leaks another server, which makes contention worse the next time around.
Would it be possible to destroy the process from a JVM shutdown hook too, so it doesn't
depend on the OSGi stop path? Reaping servers whose parent IDE no longer exists at
startup would also clean up the ones already out there.
- Lingua principale
- Java
- Stelle
- 128
- Fork
- 66
- Merge medio
- 1g 14h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/copilot-for-eclipse
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
microsoft/copilot-for-eclipse#477 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
microsoft/copilot-for-eclipse#476 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
microsoft/copilot-for-eclipse#474 ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature Request] Copilot CLI Quick Launcher (Just like Intellij) with WSL & Auto-Install SupportApertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
microsoft/copilot-for-eclipse#473 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
microsoft/copilot-for-eclipse#472 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/copilot-for-eclipse
Issue simili
-
`GET /v1/event/token/{uuid}` can report a BOM upload as done before policy evaluation and metrics have finishedForse già presa @Zargath l’ha presa oggi. Apertadefect in triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DependencyTrack/dependency-track#7646 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
floci-io/floci#5425 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
objectionary/eo-graphs#80 ·
-
WebMvcStreamableServerTransportProvider: idle-session eviction stops permanently after a NullPointerException when a session is deleted mid-sweepForse già presa @lejuho l’ha presa oggi. Apertastatus: waiting-for-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
spring-projects/spring-ai#7133 ·
I maintainer di solito rispondono entro 6 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
objectionary/jucs#141 ·
I maintainer di solito rispondono entro 1 giorno