Subject: bug#59883: Eglot gopls failed to connect

From: Johann Höchtl <[email-masked]>
Date: Wed, 7 Dec 2022 14:50:35 +0100

Using Emacs build
https://github.com/kiennq/emacs-build/releases/tag/v29.169.20221201.4a23421

has builtin eglot: yes

Running under git bash,Windows 10, German

I am developing golang, the go LSP server is gopls. Installed @latest from

golang.org/x/tools/gopls v0.10.1
    golang.org/x/tools/[email-masked]
h1:JoHe17pdZ8Vsa24/GUO8iTVTKPh0EOBiWpPop7XJybI=

Messages are:

[eglot] Connected! Server `gopls' now managing `(go-mode go-dot-mod-mode
go-dot-work-mode)' buffers in project `kennzahlenmonitor'.
Error in menu-bar-update-hook (imenu-update-menubar): (jsonrpc-error
"request id=2 failed:" (jsonrpc-error-message . "Timed out"))

The EGLOT Buffer has these entries:
[client-notification] Wed Dec  7 14:43:57 2022:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
 (:textDocument
  (:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go"
:version 0 :languageId "go" :text
 [... snip ...]

[client-request] (id:6) Wed Dec  7 14:43:58 2022:
(:jsonrpc "2.0" :id 6 :method "textDocument/documentSymbol" :params
 (:textDocument
  (:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")))
[client-request] (id:7) Wed Dec  7 14:44:13 2022:
(:jsonrpc "2.0" :id 7 :method "textDocument/signatureHelp" :params
 (:textDocument
  (:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")
  :position
  (:line 0 :character 0)))
[client-request] (id:8) Wed Dec  7 14:44:13 2022:
(:jsonrpc "2.0" :id 8 :method "textDocument/hover" :params
 (:textDocument
  (:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")
  :position
  (:line 0 :character 0)))
[client-request] (id:9) Wed Dec  7 14:44:13 2022:
(:jsonrpc "2.0" :id 9 :method "textDocument/documentHighlight" :params
 (:textDocument
  (:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")
  :position
  (:line 0 :character 0)))
[internal] (id:7) Wed Dec  7 14:44:23 2022:
(:timed-out :textDocument/signatureHelp :id 7 :params
(:textDocument
(:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")
:position
(:line 0 :character 0)))
[internal] (id:8) Wed Dec  7 14:44:23 2022:
(:timed-out :textDocument/hover :id 8 :params
(:textDocument
(:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")
:position
(:line 0 :character 0)))
[internal] (id:9) Wed Dec  7 14:44:23 2022:
(:timed-out :textDocument/documentHighlight :id 9 :params
(:textDocument
(:uri
"file:///c%3A/Users/HoechtlJ/code/kennzahlenmonitor/kennzahlenmonitor/units/serviceware/serviceware.go")
:position
(:line 0 :character 0)))

Symptom is, that the LSP server is running but actually not in a working
state. Memory consumption is stable (low) but the server doens't seem to
respond to request.

If the project is very small, the server works.

It seems the server is not yet ready scanning packages yet has to answer
requests.

Under some very rare circumstances even on a large codebase gopls works.
Icouldn't yet identify a pattern when this is the case.