Describe the bug
In emacs GNU Emacs 28.0.50, start-file-process-shell-command
was update from:
(defun start-file-process-shell-command (name buffer &rest args) "Start a program in a subprocess. Return the process object for it. Similar to `start-process-shell-command', but calls `start-file-process'." (declare (advertised-calling-convention (name buffer command) "23.1")) ;; On remote hosts, the local `shell-file-name' might be useless. (with-connection-local-variables (start-file-process name buffer shell-file-name shell-command-switch (mapconcat 'identity args " "))))
to:
(defun start-file-process-shell-command (name buffer command) "Start a program in a subprocess. Return the process object for it. Similar to `start-process-shell-command', but calls `start-file-process'." ;; On remote hosts, the local `shell-file-name' might be useless. (with-connection-local-variables (start-file-process name buffer shell-file-name shell-command-switch command)))
which make lsp-tramp-connection unusable.
A temporary solution on user side:
(defun start-file-process-shell-command@around (start-file-process-shell-command name buffer &rest args) "Start a program in a subprocess. Return the process object for it. Similar to `start-process-shell-command', but calls `start-file-process'." ;; On remote hosts, the local `shell-file-name' might be useless. (let ((command (mapconcat 'identity args " "))) (funcall start-file-process-shell-command name buffer command))) (advice-add 'start-file-process-shell-command :around #'start-file-process-shell-command@around)
By the way, tramp complain about when lsp make tramp connection:
Error processing message (remote-file-error "Forbidden reentrant call of Tramp").
Remote file error: Forbidden reentrant call of Tramp
TRAMP user manual explains that
Timers, process filters and sentinels, and other event based functions can run at any time, when a remote file operation is still running. This can cause TRAMP to block. When such a situation is detected, this error is triggered. It shall be fixed in the respective function (an error report will help).
Is this the reason why lsp tramp often blocks emacs? #1845. Is there any way to improve lsp-tramp-connection
?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4