emacs-lsp / emacs

Mirror of GNU Emacs
http://www.gnu.org/software/emacs/
GNU General Public License v3.0
71 stars 8 forks source link

lsp-servers crashing or not responding #9

Open Flirre opened 1 year ago

Flirre commented 1 year ago

I get different behaviours with the same config on Linux and an M1 Macbook. I compiled them mostly the same way on both machines by cloning this repo and configuring with Linux: ./configure --with-native-compilation --with-json --with-xwidgets --with-cairo --with-modules --with-gnutls --with-harfbuzz --with-imagemagick --with-jpeg --with-png Mac ./configure --with-native-compilation --with-json --with-xwidgets --with-modules --with-imagemagick --with-jpeg --with-png

On my Linux-machine everything works great and is really snappy.

On my M1 Pro Macbook instead the LSP-servers immediately crash as soon as they are started. I've tried running ts-ls + eslint on an actual big work project and a small dummy example and it crashes in both scenarios.

note: deno is not part of my code nor am I actively trying to run that language server.

*Messages*

Server eslint:0/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n) y

Server ts-ls:0/starting exited (check corresponding stderr buffer for details). Do you want to restart it? (y or n) y

Eager macro-expansion failure: (wrong-number-of-arguments (1 . 1) 0)

---

*Native-Compile-Log*
Compiling /var/folders/2z/j_prjx4s2zsdk_ccfjdwy9l80000gn/T/freefn-2b656d6163732d6c6973702d686967686c696768742d766172732d616e642d6661636573_emacs_lisp_highlight_vars_and_faces_0RSVEDl.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups

Compiling /Users/filip-lindahl/.emacs.d/.local/cache/eln/28_2-3bc03591/subr--trampoline-6765742d636861722d70726f7065727479_get_char_property_0.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups

Compiling /var/folders/2z/j_prjx4s2zsdk_ccfjdwy9l80000gn/T/freefn-2b656d6163732d6c6973702d7472756e636174652d70696e_emacs_lisp_truncate_pin_0PRvdYJ.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups

Compiling /var/folders/2z/j_prjx4s2zsdk_ccfjdwy9l80000gn/T/freefn-2b656d6163732d6c6973702d2d63616c63756c6174652d6c6973702d696e64656e742d61_emacs_lisp__calculate_lisp_indent_a_0bJRklH.eln...
ld: warning: -undefined dynamic_lookup may not work with chained fixups

---

*lsp-log*
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Command "/opt/homebrew/bin/typescript-language-server --tsserver-path /opt/homebrew/bin/tsserver --stdio" is present on the path.
Command "deno lsp" is not present on the path.
Found the following clients for /Users/filip-lindahl/lsptest/App.js: (server-id eslint, priority -1), (server-id ts-ls, priority -2)
The following clients were selected based on priority: (server-id ts-ls, priority -2), (server-id eslint, priority -1)

---

*Backtrace*

Debugger entered--Lisp error: (error "Timeout while waiting for response.  Method: textD...")
  error("Timeout while waiting for response.  Method: %s" "textDocument/completion")
  lsp-request-while-no-input("textDocument/completion" (:textDocument (:uri "file:///Users/filip-lindahl/lsptest/App.js") :position (:line 1 :character 2) :context #<hash-table equal 2/65 0x4742484f>))
  #f(compiled-function () #<bytecode -0xa05358edc08f661>)()
  #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>)("" nil t)
  completion-pcm--all-completions("" (point) #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil)
  completion-basic-all-completions("" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0)
  lsp-completion-passthrough-all-completions("" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0)
  #f(compiled-function (style) #<bytecode 0x11b0ce1849ce85bb>)(lsp-passthrough)
  completion--some(#f(compiled-function (style) #<bytecode 0x11b0ce1849ce85bb>) (lsp-passthrough basic partial-completion emacs22))
  completion--nth-completion(2 "" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0 (metadata (category . lsp-capf) (display-sort-function . identity) (cycle-sort-function . identity)))
  completion-all-completions("" #f(compiled-function (probe pred action) #<bytecode 0x861fee29f81baaf>) nil 0 (metadata (category . lsp-capf) (display-sort-function . identity) (cycle-sort-function . identity)))
  company-capf--candidates("")
  company-capf(candidates "")
  company--multi-backend-adapter-candidates((company-capf company-yasnippet) "" (:separate company-capf company-yasnippet))
  company--multi-backend-adapter((:separate company-capf company-yasnippet) candidates "")
  apply(company--multi-backend-adapter (:separate company-capf company-yasnippet) (candidates ""))
  company-call-backend-raw(candidates "")
  company--fetch-candidates("")
  company-calculate-candidates("" nil)
  company--begin-new()
  company--perform()
  company-auto-begin()
  company-idle-begin(#<buffer App.js> #<window 3 on App.js> 306 28)
  apply(company-idle-begin (#<buffer App.js> #<window 3 on App.js> 306 28))
  timer-event-handler([t 25494 57281 792794 nil company-idle-begin (#<buffer App.js> #<window 3 on App.js> 306 28) nil 0 nil])

  ---

  *Company-documentation*
  Wrong type argument: stringp, nil comment Wrong type argument: stringp, nil
ikapo commented 1 year ago

I am experiencing this as well on M1

ikapo commented 1 year ago

I've managed to fix it by ensuring node is present in /opt/homebrew/bin, but still the lsp servers are either incredibly slow to respond (20+ seconds for completion) or just flat out throw a timeout, looking briefly at the io logs I wan't able to discern anything unfortunately