Skip to content
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

Bug: LSP Message (autotools_ls) Unexpected error in LSP server, see server's logs for details #3

Closed
chrisgrieser opened this issue Nov 20, 2023 · 10 comments
Labels
bug Something isn't working

Comments

@chrisgrieser
Copy link

Thanks for this LSP, I was actually looking for some makefile tooling a while ago!

I set up autotools to be used via nvim-lsp-config. However, as soon as I enter an LSP server, I get this error a few dozen times per second:

LSP Message (autotools_ls) Unexpected error in LSP server, see server's logs for details

The respective LSP logs are similarly full of errors, just pasting the last few lines:

[ERROR][2023-11-20 14:43:11] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"Failed to handle request 1635 textDocument/definition DefinitionParams(text_document=TextDocumentIdentifier(uri='file:///Users/chrisgrieser/.config/nvim/Makefile'), position=1:0, work_done_token=None, partial_result_token=None)\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 265, in _handle_request\n    self._execute_request(msg_id, handler, params)\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 187, in _execute_request\n    self._send_response(msg_id, handler(params))\n                                ^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/server.py\", line 96, in definition\n    for uni in DefinitionFinder(uni.node).find_all(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py\", line 146, in __init__\n    raise NotImplementedError\nNotImplementedError\n"
[ERROR][2023-11-20 14:43:11] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"Error sending data\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 265, in _handle_request\n    self._execute_request(msg_id, handler, params)\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 187, in _execute_request\n    self._send_response(msg_id, handler(params))\n                                ^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/server.py\", line 96, in definition\n    for uni in DefinitionFinder(uni.node).find_all(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py\", line 146, in __init__\n    raise NotImplementedError\nNotImplementedError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 385, in _send_data\n    body = json.dumps(data, default=self._serialize_message)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/__init__.py\", line 238, in dumps\n    **kw).encode(obj)\n          ^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py\", line 200, in encode\n    chunks = self.iterencode(o, _one_shot=True)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py\", line 258, in iterencode\n    return _iterencode(o, 0)\n           ^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 308, in _serialize_message\n    return self._converter.unstructure(data)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/cattrs/converters.py\", line 238, in unstructure\n    return self._unstructure_func.dispatch(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"<cattrs generated unstructure lsprotocol.types.ResponseErrorMessage>\", line 3, in unstructure_ResponseErrorMessage\n    'error': __c_unstr_error(instance.error),\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/cattrs/converters.py\", line 960, in unstructure_optional\n    return None if val is None else _handler(val)\n                                    ^^^^^^^^^^^^^\n  File \"<cattrs generated unstructure lsprotocol.types.ResponseError>\", line 3, in unstructure_ResponseError\n    'code': instance.code,\n             ^^^^^^^^^^^^^\nAttributeError: 'dict' object has no attribute 'code'\nFailed to handle request 1636 textDocument/references ReferenceParams(context=ReferenceContext(include_declaration=False), text_document=TextDocumentIdentifier(uri='file:///Users/chrisgrieser/.config/nvim/Makefile'), position=1:0, work_done_token=None, partial_result_token=None)\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 265, in _handle_request\n    self._execute_request(msg_id, handler, params)\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 187, in _execute_request\n    self._send_response(msg_id, handler(params))\n                                ^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/server.py\", line 119, in references\n    for uni in ReferenceFinder(uni.node).find_all(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py\", line 248, in __init__\n    raise NotImplementedError\nNotImplementedError\n"
[ERROR][2023-11-20 14:43:11] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"Error sending data\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 265, in _handle_request\n    self._execute_request(msg_id, handler, params)\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 187, in _execute_request\n    self._send_response(msg_id, handler(params))\n                                ^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/server.py\", line 119, in references\n    for uni in ReferenceFinder(uni.node).find_all(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py\", line 248, in __init__\n    raise NotImplementedError\nNotImplementedError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 385, in _send_data\n    body = json.dumps(data, default=self._serialize_message)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/__init__.py\", line 238, in dumps\n    **kw).encode(obj)\n          ^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py\", line 200, in encode\n    chunks = self.iterencode(o, _one_shot=True)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py\", line 258, in iterencode\n    return _iterencode(o, 0)\n           ^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 308, in _serialize_message\n    return self._converter.unstructure(data)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/cattrs/converters.py\", line 238, in unstructure\n    return self._unstructure_func.dispatch(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"<cattrs generated unstructure lsprotocol.types.ResponseErrorMessage>\", line 3, in unstructure_ResponseErrorMessage\n    'error': __c_unstr_error(instance.error),\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/cattrs/converters.py\", line 960, in unstructure_optional\n    return None if val is None else _handler(val)\n                                    ^^^^^^^^^^^^^\n  File \"<cattrs generated unstructure lsprotocol.types.ResponseError>\", line 3, in unstructure_ResponseError\n    'code': instance.code,\n             ^^^^^^^^^^^^^\nAttributeError: 'dict' object has no attribute 'code'\n"
[ERROR][2023-11-20 14:43:11] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"Failed to handle request 1637 textDocument/definition DefinitionParams(text_document=TextDocumentIdentifier(uri='file:///Users/chrisgrieser/.config/nvim/Makefile'), position=1:0, work_done_token=None, partial_result_token=None)\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 265, in _handle_request\n    self._execute_request(msg_id, handler, params)\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 187, in _execute_request\n    self._send_response(msg_id, handler(params))\n                                ^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/server.py\", line 96, in definition\n    for uni in DefinitionFinder(uni.node).find_all(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py\", line 146, in __init__\n    raise NotImplementedError\nNotImplementedError\n"
[ERROR][2023-11-20 14:43:11] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"Error sending data\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 265, in _handle_request\n    self._execute_request(msg_id, handler, params)\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 187, in _execute_request\n    self._send_response(msg_id, handler(params))\n                                ^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/server.py\", line 96, in definition\n    for uni in DefinitionFinder(uni.node).find_all(\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py\", line 146, in __init__\n    raise NotImplementedError\nNotImplementedError\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 385, in _send_data\n    body = json.dumps(data, default=self._serialize_message)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/__init__.py\", line 238, in dumps\n    **kw).encode(obj)\n          ^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py\", line 200, in encode\n    chunks = self.iterencode(o, _one_shot=True)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/Cellar/python@3.11/3.11.6_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py\", line 258, in iterencode\n    return _iterencode(o, 0)\n           ^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/pygls/protocol/json_rpc.py\", line 308, in _serialize_message\n    return self._converter.unstructure(data)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/cattrs/converters.py\", line 238, in unstructure\n    return self._unstructure_func.dispatch(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"<cattrs generated unstructure lsprotocol.types.ResponseErrorMessage>\", line 3, in unstructure_ResponseErrorMessage\n    'error': __c_unstr_error(instance.error),\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/homebrew/lib/python3.11/site-packages/cattrs/converters.py\", line 960, in unstructure_optional\n    return None if val is None else _handler(val)\n                                    ^^^^^^^^^^^^^\n  File \"<cattrs generated unstructure lsprotocol.types.ResponseError>\", line 3, in unstructure_ResponseError\n    'code': instance.code,\n             ^^^^^^^^^^^^^\nAttributeError: 'dict' object has no attribute 'code'\n"

autotools-language-server 0.0.12

installed via pip on macOS 14.1 (M1), using Python 3.11

@Freed-Wu
Copy link
Owner

I'll take a look.

@Freed-Wu
Copy link
Owner

Can you provide your /Users/chrisgrieser/.config/nvim/Makefile?

@chrisgrieser
Copy link
Author

Happens for me in any Makefile I tried. Even in a minimal one like this one:

foo:
	echo

@Freed-Wu
Copy link
Owner

I guess it is because in this language server, Goto Defintion only work for variable, function, recipe, and will raise NotImplementation Error for other things. In my LSP plugin (coc.nvim), the error was ignored and will not disturb users, however, in other LSP plugins, (such as nvim-lsp) the error will be thrown. I'll remove the code about raise NotImplementation, just let it does nothing when it meet any things which is not variable, function, recipe.

@Freed-Wu
Copy link
Owner

Can you try #3?

pip install git+https://github.com/Freed-Wu/autotools-language-server@iss3

@chrisgrieser
Copy link
Author

Now the error changes, the LSP client exits with Client 3 quit with exit code 1 and signal 0, and the following is written the LSP log:

[START][2023-11-23 12:47:22] LSP logging initiated
[ERROR][2023-11-23 12:47:22] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	'Traceback (most recent call last):\n  File "/opt/homebrew/bin/autotools-language-server", line 8, in <module>\n'
[ERROR][2023-11-23 12:47:22] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	'    sys.exit(main())\n             ^^^^^^\n  File "/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/__main__.py", line 74, in main\n'
[ERROR][2023-11-23 12:47:22] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"    from .finders import DIAGNOSTICS_FINDER_CLASSES\n"
[ERROR][2023-11-23 12:47:22] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	'  File "/opt/homebrew/lib/python3.11/site-packages/autotools_language_server/finders.py", line 11, in <module>\n'
[ERROR][2023-11-23 12:47:22] .../vim/lsp/rpc.lua:734	"rpc"	"/opt/homebrew/bin/autotools-language-server"	"stderr"	"    from tree_sitter_lsp.finders import (\nImportError: cannot import name 'ErrorQueryFinder' from 'tree_sitter_lsp.finders' (/opt/homebrew/lib/python3.11/site-packages/tree_sitter_lsp/finders.py)\n"

@Freed-Wu
Copy link
Owner

Oh, I forget to publish a new version of tree-sitter-lsp. 😄

@Freed-Wu
Copy link
Owner

Can you use latest tree-sitter-lsp and try again?

pip install git+https://github.com/Freed-Wu/tree-sitter-lsp

@chrisgrieser
Copy link
Author

yep, that works now 🥳

@Freed-Wu
Copy link
Owner

yep, that works now

Good! The change will occur in next release.

Freed-Wu added a commit that referenced this issue Nov 25, 2023
Freed-Wu added a commit that referenced this issue Nov 25, 2023
@Freed-Wu Freed-Wu added the bug Something isn't working label Nov 27, 2023
Freed-Wu added a commit that referenced this issue Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants