A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/emacs-lsp/lsp-mode/issues/2514 below:

compatibility issues with lsp-tramp-connection and emacs 28 · Issue #2514 · emacs-lsp/lsp-mode · GitHub

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