Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Godot LSP with [ERROR] Tried sending response into a closed channel #10700

Closed
mikamikuh opened this issue May 6, 2024 · 0 comments
Closed

Godot LSP with [ERROR] Tried sending response into a closed channel #10700

mikamikuh opened this issue May 6, 2024 · 0 comments
Labels
C-bug Category: This is a bug

Comments

@mikamikuh
Copy link

Summary

Instruction discussed to use Godot LSP in #6190 works only partially. Autocomplete works however the relevant document load takes 10s-1m to appear on the screen or sometimes it does not show up. Also the log showing numbers of [ERROR] Tried sending response into a closed channel

Reproduction Steps

I tried this:

  1. Run Godot (4.3) and open a project (to run the language server)
  2. Update language.toml like below
[language-server.godot]
command = "ncat" # or nc
args = ["127.0.0.1", "6005"]

[[language]]
name = "gdscript"
language-servers = ["godot"]
  1. hx Mob.gd
  2. Type a name of a class Vec and some suggestions appear on the screen
  3. Move a cursor to one of the suggestion Vector2
Kooha-2024-05-06-17-21-19.mp4

I expected this to happen:

The relevant document appear on the screen immediately

Instead, this happened:

Nothing appear or it takes 30 sec - 2min to see the relevant doc, and seeing numbers of 2024-05-06T16:24:42.929 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(3)), original request likely timed out

Notes

  • I double checked in VSCode to see the Godot's LSP is responding with reasonable time frame, and it works fine
  • I also tried socat command instead of ncat, which resulted the same behavior as above

Helix log

~/.cache/helix/helix.log
2024-05-06T16:24:42.929 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(3)), original request likely timed out
2024-05-06T16:24:43.129 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(4)), original request likely timed out
2024-05-06T16:24:43.229 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(5)), original request likely timed out
2024-05-06T16:24:43.429 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(6)), original request likely timed out
2024-05-06T16:24:43.529 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(7)), original request likely timed out
2024-05-06T16:24:43.729 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(8)), original request likely timed out
2024-05-06T16:24:43.830 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(9)), original request likely timed out
2024-05-06T16:24:44.029 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(10)), original request likely timed out
...
2024-05-06T17:23:09.462 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(640)), original request likely timed out
2024-05-06T17:23:09.562 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(641)), original request likely timed out
2024-05-06T17:23:09.762 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(642)), original request likely timed out

With hx -v

2024-05-06T17:27:09.433 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(18)), original request likely timed out
2024-05-06T17:27:09.519 helix_lsp::transport [INFO] godot -> {"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"insertText":"Vector2","kind":7,"label":"Vector2"},"id":19}
2024-05-06T17:27:09.533 helix_lsp::transport [INFO] godot <- {"id":19,"jsonrpc":"2.0","result":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}}
2024-05-06T17:27:09.533 helix_lsp::transport [INFO] godot <- {"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}
2024-05-06T17:27:09.533 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(19)), original request likely timed out
2024-05-06T17:27:09.671 helix_lsp::transport [INFO] godot -> {"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"insertText":"Vector2","kind":7,"label":"Vector2"},"id":20}
2024-05-06T17:27:09.733 helix_lsp::transport [INFO] godot <- {"id":20,"jsonrpc":"2.0","result":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}}
2024-05-06T17:27:09.733 helix_lsp::transport [INFO] godot <- {"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}
2024-05-06T17:27:09.733 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(20)), original request likely timed out
2024-05-06T17:27:09.823 helix_lsp::transport [INFO] godot -> {"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"insertText":"Vector2","kind":7,"label":"Vector2"},"id":21}
2024-05-06T17:27:09.832 helix_lsp::transport [INFO] godot <- {"id":21,"jsonrpc":"2.0","result":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}}
2024-05-06T17:27:09.832 helix_lsp::transport [INFO] godot <- {"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}
2024-05-06T17:27:09.832 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(21)), original request likely timed out
2024-05-06T17:27:09.975 helix_lsp::transport [INFO] godot -> {"jsonrpc":"2.0","method":"completionItem/resolve","params":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"insertText":"Vector2","kind":7,"label":"Vector2"},"id":22}
2024-05-06T17:27:10.033 helix_lsp::transport [INFO] godot <- {"id":22,"jsonrpc":"2.0","result":{"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}}
2024-05-06T17:27:10.033 helix_lsp::transport [INFO] godot <- {"data":{"context":{"triggerCharacter":"<null>","triggerKind":1},"position":{"character":7,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"deprecated":false,"detail":"","documentation":{"kind":"markdown","value":"\t<Native> class Vector2\n\nA 2D vector using floating-point coordinates.\n\n\n\n\n\nA 2-element structure that can be used to represent 2D coordinates or any other pair of numeric values.\n\nIt uses floating-point coordinates. By default, these floating-point values use 32-bit precision, unlike `float` which is always 64-bit. If double precision is needed, compile the engine with the option `precision=double`.\n\nSee `Vector2i` for its integer counterpart.\n\n**Note:** In a boolean context, a Vector2 will evaluate to `false` if it's equal to `Vector2(0, 0)`. Otherwise, a Vector2 will always evaluate to `true`.\n\n"},"filterText":"","insertText":"Vector2","kind":7,"label":"Vector2","preselect":false,"sortText":""}
2024-05-06T17:27:10.033 helix_lsp::transport [ERROR] Tried sending response into a closed channel (id=Num(22)), original request likely timed out
2024-05-06T17:27:10.181 helix_lsp::transport [INFO] godot -> {"jsonrpc":"2.0","method":"textDocument/signatureHelp","params":{"position":{"character":6,"line":7},"textDocument":{"uri":"file:///home/xxxxx/3d-tutorial/Mob.gd"}},"id":23}
2024-05-06T17:27:10.232 helix_lsp::transport [INFO] godot <- {"id":23,"jsonrpc":"2.0","result":null}
2024-05-06T17:27:10.232 helix_lsp::transport [INFO] godot <- null

Platform

Linux (Arch Linux 6.8.9-arch1-1)

Terminal Emulator

Kitty 0.33.1

Installation Method

pacman

Helix Version

helix 24.3

@mikamikuh mikamikuh added the C-bug Category: This is a bug label May 6, 2024
@helix-editor helix-editor locked and limited conversation to collaborators May 6, 2024
@the-mikedavis the-mikedavis converted this issue into discussion #10702 May 6, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
C-bug Category: This is a bug
Projects
None yet
Development

No branches or pull requests

1 participant