microsoft / microsoft/TypeScript-Sublime-Plugin

tsserver crashes after a few minutes

Aperta
#539 9 commenti 6 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
JavaScript
Stelle
1.7k
Fork
236
Merge medio
21g 13h
PR unite (30g)
1

Descrizione

I've been trying to make this plugin work for my team. I hear great things about it. Unfortunately the TS node process keeps crashing after a few minutes, and I could use some assistance to debug it.

When I first start up sublime, ps aux | grep node shows the process is started:
/usr/local/bin/node /Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/tsserver/tsserver.js

If I make syntax errors or try to rename things, it mostly seems to work. ps aux | grep node shows the process is still running.

After a few minutes though, it stops working. ps aux | grep node no longer shows the process running, so it seems that the TS server has died.

Looking at the sublime console, ctrl-backtick, I see the following stacktrace. There's no other error output:

Traceback (most recent call last):
  File "/Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/typescript/listeners/idle.py", line 22, in _check_timeout_count
    self.handler()
  File "/Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/typescript/listeners/idle.py", line 79, in on_selection_idle
    self.request_document_highlights(view, info)
  File "/Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/typescript/listeners/idle.py", line 187, in request_document_highlights
    cli.service.async_document_highlights(view.file_name(), location, self.highlight_occurrences)
  File "/Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/typescript/libs/service_proxy.py", line 259, in async_document_highlights
    self.__comm.sendCmdAsync(json_str, on_completed, req_dict["seq"])
  File "/Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/typescript/libs/node_client.py", line 111, in sendCmdAsync
    if self.postCmd(cmd):
  File "/Users/aj/Library/Application Support/Sublime Text 3/Packages/TypeScript/typescript/libs/node_client.py", line 142, in postCmd
    self.server_proc.stdin.write(cmd.encode())
BrokenPipeError: [Errno 32] Broken pipe

This also seems to confirm that the process has died, but there's no mention of why.

Is there anything I can do to debug this? I haven't been able to find the stdout/stderr logs for the ts server to see if there is anything relevant there.

I'm not sure if it's relevant, but https://github.com/Microsoft/TypeScript-Sublime-Plugin/blob/2da61f59d231b5442e1a7136aedcb9705ad099e2/typescript/libs/node_client.py#L267 is not redirecting stderr, which might explain the lack of error output in the console?

Thanks for reading & any assistance.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

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.

Direzione di ricerca

Inizia da typescript/libs/node_client.py, in particolare da postCmd e dalla gestione di stderr indicata nel report, quindi segui il processo tsserver avviato da tsserver/tsserver.js. Riproduci il crash ritardato e acquisisci l’output diagnostico del server; il lavoro è completato quando hai identificato perché il processo termina e hai documentato o corretto il relativo percorso di errore.

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

Valutazione

Stack tecnologico
node.js, python, typescript
Ambito
developer-experience, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.