Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Deterministic sidecar IPC endpoint collides across hosts on the same workspace

Aperta
#151 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
rust
Ambito
networking

Direzione di ricerca

Inizia in src/sidecar/manager.rs con ipc_path e segui come il percorso READY restituito viene analizzato dall’host. Poi esamina connect_transport e la pulizia dei socket Unix obsoleti, usando come verifiche gli scenari di collisione Windows e Unix dell’issue. Il lavoro è completato quando processi Windows separati non condividono più un endpoint e i tentativi di connessione Windows gestiscono ERROR_PIPE_BUSY senza modificare il protocollo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

.NET bug cluster:multi-host-isolation cluster:sidecar-startup critical

ipc_path derives the sidecar endpoint purely from the sidecar name + workspace root hash (src/sidecar/manager.rs, ipc_path), so two editor windows on the same folder compute the same endpoint:

  • Windows: the second sidecar's NamedPipeServerStream (maxNumberOfServerInstances: 1) throws ERROR_PIPE_BUSY; combined with the observability gap it exits 0 before READY — the #110 symptom for anyone using two windows. A zombie sidecar likewise occupies the pipe name forever; there is no analog of the Unix stale-socket cleanup (manager.rs unlinks stale sockets under #[cfg(unix)] only).
  • Unix: worse but quieter — the second sidecar deletes and silently steals the live socket (IpcConnection.CreateUnixSocket stale-file delete), orphaning the first host's IPC.

Proposed: add a per-spawn unique suffix (PID or nonce) in ipc_path. Zero protocol change: the sidecar already echoes READY:<argv[1]> verbatim and the host re-parses the echoed path. Defense-in-depth: the Windows connect_transport should also retry on ERROR_PIPE_BUSY per the tokio named-pipe client docs (manager.rs connect_transport).

Spec refs: [DIST-CI-WIN-TRANSPORT]. Related: #110.

Lingua principale
TypeScript
Stelle
168
Fork
9
Merge medio
2h 25m
PR unite (30g)
59

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Nimblesite/SharpLsp

Tutte le issue di Nimblesite/SharpLsp

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.