From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 17 23:53:53 2021 Received: (at submit) by debbugs.gnu.org; 18 Apr 2021 03:53:54 +0000 Received: from localhost ([127.0.0.1]:45022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lXyVN-00008r-8k for submit@debbugs.gnu.org; Sat, 17 Apr 2021 23:53:53 -0400 Received: from lists.gnu.org ([209.51.188.17]:40512) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lXyVL-00008i-JQ for submit@debbugs.gnu.org; Sat, 17 Apr 2021 23:53:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33150) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lXyVL-0005Id-Ax for bug-gnu-emacs@gnu.org; Sat, 17 Apr 2021 23:53:51 -0400 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]:39908) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lXyVI-0004ZC-Pp for bug-gnu-emacs@gnu.org; Sat, 17 Apr 2021 23:53:51 -0400 Received: by mail-pg1-x52a.google.com with SMTP id s22so801101pgk.6 for ; Sat, 17 Apr 2021 20:53:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=VVK0o0Oa2671Wrkt3iTNFTxbj6ubqJxRB5eD9zUChjs=; b=s1Et056E9vOxxiWIj/O7BVPA5SmAOJJ4VsPN714G75ht72wXB8Gmts+41nLwgGhJEa s56oSqoJtn0obG53u9ZnIL0GGRppoygShwMG7HPw0+4qpbh8mpN1p/H829yY9+ugCoXf jzxDV1q59DnxtvyDta/ERNgJI1Vu7+Ju3/69qitlVLQgPZfrWQBAEZ2NBEjkVIva4BOt MYeYnsS10ASY6QrobCXprw/D1v7gpAID2iTAPW29OgDj+1eK7tUK7ppNNWnsqDispwn4 0xJFjVvRUR2e8U13DYyvxymHYKPmMIA6n23WNU3DQV+ROsHgiCxWfN1S5SEwUEImgQbe JtLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=VVK0o0Oa2671Wrkt3iTNFTxbj6ubqJxRB5eD9zUChjs=; b=oEhqBJmKVZtSZg7NuUBHiG85BIhy+VMNN10AxkpEMop44q3EbkBHdnjKL+qVPJI/UX EjeRA1wRGZJhfdYCUfiCixOHOeOvwa/nuB9Cs1CD/+qh3LVGeH+Yf0BuD/vfzZPomcyU iqQ+sUBRnIxv3vo/JFmDtp7+ry4akduAYgDonYEuITrKQ3oR0f+pkbDd4lL9kK4hHUmm CVryt8oT8wdIbNbnwmmHh7gXSUR/rp5bgoTceodwosXpUdU+zclYFU7algch/Xl9b+Ej InlyARbE5Jamfhe/GGazsLUq73Zds6SLu0GsKlZ1YH1vlUVh8SpyucG9DrBvffbxroiq BeRg== X-Gm-Message-State: AOAM5338fakKPxc91InpPi6uxy9IlMtw4RqHXjy+xp71gnonf2J7wwQT TC3K4HKjeI8v4PLnMPQy63wJ6T2hE7ZEGk0WVPH55DgMik8= X-Google-Smtp-Source: ABdhPJzmPMpue8j0yytm8ubAYfvzuiXrh0bwsfe7UYsBTsyWhmrPuKe4732JKX0asspMxAFZiHEOU8hFda1NZ4XQk+s= X-Received: by 2002:a63:f962:: with SMTP id q34mr5829343pgk.22.1618718026650; Sat, 17 Apr 2021 20:53:46 -0700 (PDT) MIME-Version: 1.0 From: Jim Porter Date: Sat, 17 Apr 2021 20:53:37 -0700 Message-ID: Subject: Starting `jsonrpc-process-connection' over Tramp fails if the process writes to stderr To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2607:f8b0:4864:20::52a; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x52a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) When starting a `jsonrpc-process-connection' over Tramp, if the process writes to stderr, Emacs (usually) fails with `Wrong type argument: "inserted-chars 204"'. I'm able to reproduce this pretty consistently when connecting from an MS Windows client to a Linux server; however, this may apply to other platform combinations as well. Mysteriously, it works fine about 1 in 10 times, though I haven't been able to decipher why. This is a reduced test case from an eglot issue that prevents users from using eglot with clangd over Tramp (or likely any LSP server that writes to stderr): . Michael Albinus has a workaround for this for the next version of Tramp (2.5.0.4, I believe), but suggested I file an issue here to help find a more-permanent solution. The following recipe reproduces the issue for me on both Emacs 27.2 and the prebuilt Emacs 28 snapshot from 2021-01-15. `jsonrpc-minimal' is a cut-down version of `eglot--connect'. Note that this test tries to run `clangd', but any executable that writes to stderr on startup should reproduce this issue (including a nonexistent executable). After running "emacs -Q": ----------[ Eval the following ]---------- ;; Optional: disable ControlMaster if using ssh on Win32; it doesn't work there. (require 'tramp) (setq tramp-use-ssh-controlmaster-options nil) (require 'jsonrpc) (defun jsonrpc-minimal () (interactive) (make-instance 'jsonrpc-process-connection :name "jsonrpc-minimal" :process (lambda () (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t)))) ----------[ End ]---------- Then run `C-x C-f /sshx:server:~/path/to/file.txt RET' followed by `M-x jsonrpc-minimal'. (Other Tramp methods such as plink should also reproduce this issue.) If `debug-on-error' is set, I get the following backtrace: ----------[ Begin backtrace ]---------- signal(wrong-type-argument ("inserted-chars 204")) tramp-signal-hook-function(wrong-type-argument ("inserted-chars 204")) signal(wrong-type-argument ("inserted-chars 204")) tramp-handle-insert-file-contents("/sshx:server:/tmp/tramp.lLZT4H" nil nil nil nil) apply(tramp-handle-insert-file-contents ("/sshx:server:/tmp/tramp.lLZT4H" nil nil nil nil)) tramp-sh-file-name-handler(insert-file-contents "/sshx:server:/tmp/tramp.lLZT4H" nil nil nil nil) apply(tramp-sh-file-name-handler insert-file-contents ("/sshx:server:/tmp/tramp.lLZT4H" nil nil nil nil)) tramp-file-name-handler(insert-file-contents "/sshx:server:/tmp/tramp.lLZT4H" nil nil nil nil) insert-file-contents("/sshx:server:/tmp/tramp.lLZT4H" nil nil nil nil) insert-file-contents-literally("/sshx:server:/tmp/tramp.lLZT4H") tramp-sh-handle-make-process(:name "jsonrpc-minimal" :command ("sh" "-c" "stty raw > /dev/null; clangd") :connection-type pipe :coding utf-8-emacs-unix :noquery t :stderr # :file-handler t) apply(tramp-sh-handle-make-process (:name "jsonrpc-minimal" :command ("sh" "-c" "stty raw > /dev/null; clangd") :connection-type pipe :coding utf-8-emacs-unix :noquery t :stderr # :file-handler t)) tramp-sh-file-name-handler(make-process :name "jsonrpc-minimal" :command ("sh" "-c" "stty raw > /dev/null; clangd") :connection-type pipe :coding utf-8-emacs-unix :noquery t :stderr # :file-handler t) apply(tramp-sh-file-name-handler make-process (:name "jsonrpc-minimal" :command ("sh" "-c" "stty raw > /dev/null; clangd") :connection-type pipe :coding utf-8-emacs-unix :noquery t :stderr # :file-handler t)) tramp-file-name-handler(make-process :name "jsonrpc-minimal" :command ("sh" "-c" "stty raw > /dev/null; clangd") :connection-type pipe :coding utf-8-emacs-unix :noquery t :stderr # :file-handler t) make-process(:name "jsonrpc-minimal" :command ("sh" "-c" "stty raw > /dev/null; clangd") :connection-type pipe :coding utf-8-emacs-unix :noquery t :stderr # :file-handler t) (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t))() #f(compiled-function (cl--cnm conn slots) #)(#f(compiled-function (&rest cnm-args) #) # (:name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t)))) apply(#f(compiled-function (cl--cnm conn slots) #) #f(compiled-function (&rest cnm-args) #) (# (:name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t))))) #f(compiled-function (&rest args) #)(# (:name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t)))) apply(#f(compiled-function (&rest args) #) # (:name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t)))) initialize-instance(# (:name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t)))) #f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #)(jsonrpc-process-connection :name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t))) apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #) jsonrpc-process-connection (:name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t)))) make-instance(jsonrpc-process-connection :name "jsonrpc-minimal" :process (closure (t) nil (make-process :name "jsonrpc-minimal" :command '("sh" "-c" "stty raw > /dev/null; clangd") :connection-type 'pipe :coding 'utf-8-emacs-unix :noquery t :stderr (get-buffer-create "*jsonrpc-minimal stderr*") :file-handler t))) jsonrpc-minimal() funcall-interactively(jsonrpc-minimal) call-interactively(jsonrpc-minimal record nil) command-execute(jsonrpc-minimal record) execute-extended-command(nil "jsonrpc-minimal" "jsonrpc-minimal") funcall-interactively(execute-extended-command nil "jsonrpc-minimal" "jsonrpc-minimal") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) ----------[ End backtrace ]---------- ----------[ Begin Emacs debug info ]---------- In GNU Emacs 28.0.50 (build 1, x86_64-w64-mingw32) of 2021-01-15 built on CIRROCUMULUS Repository revision: f45be48ddbde00610e1e08fca6590dcf24a4e1b5 Repository branch: master Windowing system distributor 'Microsoft Corp.', version 10.0.19041 System Description: Microsoft Windows 10 Pro (v10.0.2004.19041.928) Configured using: 'configure --without-dbus --without-compress-install -C 'CFLAGS=-O2 -static -g3' PKG_CONFIG_PATH=/mingw64/lib/pkgconfig' Configured features: ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XPM ZLIB Important settings: value of $LANG: ENU locale-coding-system: cp1252 Major mode: Fundamental Minor modes in effect: shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils mule-util help-fns radix-tree cl-print cus-start cus-load vc-hg vc-git diff-mode easy-mmode vc-bzr cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs tramp-cache tramp-sh jsonrpc ert pp ewoc debug backtrace help-mode easymenu find-func pcase warnings tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete comint ansi-color ring parse-time iso8601 format-spec auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map seq byte-opt gv bytecomp byte-compile cconv time-date subr-x cl-loaddefs cl-lib iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 148954 7276) (symbols 48 13698 1) (strings 32 40410 1316) (string-bytes 1 1461011) (vectors 16 21458) (vector-slots 8 300360 13838) (floats 8 55 160) (intervals 56 2822 0) (buffers 984 18)) ----------[ End Emacs debug info ]---------- From debbugs-submit-bounces@debbugs.gnu.org Sat May 01 05:43:54 2021 Received: (at 47861) by debbugs.gnu.org; 1 May 2021 09:43:54 +0000 Received: from localhost ([127.0.0.1]:60292 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lcmAD-0007fV-Cw for submit@debbugs.gnu.org; Sat, 01 May 2021 05:43:54 -0400 Received: from mout.gmx.net ([212.227.17.22]:41435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lcmAA-0007dN-Gb for 47861@debbugs.gnu.org; Sat, 01 May 2021 05:43:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1619862223; bh=0mzyM6NyTDRo2LbzeRG0hV0YGXpN3FeP+uGqAf/FyQI=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=ElWQqWd8aqkHJpxf8rYg7kZb9obOOjp/iE8O1UB9xxq8sb2PsbsInC8koU4z7MLLL 37mD/N+5wvrArNTW3bS+7WIE5Fi76E1EZM2Sw8nBiDu/VrFtyGpcefW9X+kkTXaLMa BVaqiMIt54aco7S8g+29fp5wg20FGye/2yzoto5w= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([212.91.243.39]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MLi8m-1luRXL294q-00HenW; Sat, 01 May 2021 11:43:43 +0200 From: Michael Albinus To: Jim Porter Subject: Re: bug#47861: Starting `jsonrpc-process-connection' over Tramp fails if the process writes to stderr References: Date: Sat, 01 May 2021 11:43:42 +0200 In-Reply-To: (Jim Porter's message of "Sat, 17 Apr 2021 20:53:37 -0700") Message-ID: <87y2cyaiwh.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:8zdgsBYvEjaCZRvyLnQ9/zjNABCVNMbJk/i9tvtdrm5ygxg5YRP fZlF0+3lUtj5/Spe159vjftWGB+J4wmeNvdombk0OODLVQcLVC1HXuoI2naumdfYYbWPHAs ChJEsuC1xHn7G+DK+tDqb2ewGQ5TzuYq1wpoVzF3tJsxWCE20FgkSwnFR+D9JlrCWW8h97c xYpDCAATMDh2FTQ9MTV9Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:slT7qswHma8=:1qnHI4nScDhBsCRREntQ2w nVhh/1NqbZ5qcIb4DbFwa1+LNjDmvT8VG+dLsbHF0BlJVJc7L0SgSHJWrISNpWOT53BaDHGg4 sjDQjjIyc2sPTREmIu/Y+6eGGpXL8i4B7wrZTXjfHSTUWfLjhPQW6XnF31ie16xhwfbfl1xU1 TStEQGH3bMW5jyA3n8oiCOi8tLTJLEgdhQGNYIXqzoFfwhLlBFJNdXs4ogmkTDxLkDVNI21EC Gik2i17wUTHiLBidsys1iYE1GSZk3bI0+9NVphIQBbK+6K7lhgXQU+ODMegPXSxovvIjNahjC 7X+bZqQmkHY1l5ZwNfQPLhqnxIz80wcZ4EaVmH8ONcUVt74ue0d+Es5jddBgHvVdyuQUZIJ0y w9byyvaAhTSRutw0HndrtY4BbLYjFJlfhExxv7qWOchY1Cl+0z1MRJOvINAkwh4hTcoYLkATi Bf7QjGu5Tvvz/gb+dJ8X+EiweBBnhCjZ82DNoZ5Igu7oVLN5VIqduTLqt1VN5dQarFMoSz+bi 6LGWy2gBdtOtyahZbnxTrGqczPvCTT/8XPAhYFOZ5FSvXwcLqcog2medftT8hxoRZce2kTo1s 24GMB4ITk69281ACySrzIjJL83AOWRpUSyHDUVFNgwG/JBjSdILzFmrGdbyyYoAIfIrq6/FpR VKHawpXRjg60MTJDcWgsQ9K8DQ8FSCGgYG6QhtmNWiLzYKiWQJ6vD2spBdnyO6D/eShHAEVBz yHseOkB418Soj6qZZb4p4ALL5y3qaKXKHKie7s1ERDjfC22pgETRv4DG2E14f4XfRo+WR50p1 yOR2AYWZYkp5EbNCx5dIZFoANyn+NLXBqP7FTlWbdNm9rQZ1B8gTwNbdlteWV5X0Ho3Kl7Ez9 6rBZNAqybMpelVP0jFqEl3UuQOQUK8Y3EYUYb9o4zJsTf1SVoPL4l01aF2qee/wU06jhJEZZn Ba3sNQpNRbIyN1paojMUHrYNBU/pJJtRfvYthFXpbCKwqbRljXdQ5pLNLDfTrX+VCleaEomAt yQVCCN5v7gxzfmKUtGlOiQWFNxRDeMrasSYLMP1xI2lu6MmmrV0ZS/Myuyth6ToxjunRhQN7l BkpQns9A08li0XCPjjjOA4cAHqiJThdBhb+We92tVjupB4CZifG+9LYOLxHpkWW4HOC4XHhKk bNF3YtrJRJPaMwYs8ErI/nLdZVvStgkGVTpzFxYcIWiI3nBZcIqlp0QJ2gy7aB3hViu/Oeejc uYX4l7TXHPvrfsSdy X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47861 Cc: 47861@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jim Porter writes: > When starting a `jsonrpc-process-connection' over Tramp, if the > process writes to stderr, Emacs (usually) fails with `Wrong type > argument: "inserted-chars 204"'. I'm able to reproduce this pretty > consistently when connecting from an MS Windows client to a Linux > server; however, this may apply to other platform combinations as > well. Mysteriously, it works fine about 1 in 10 times, though I > haven't been able to decipher why. In current Tramp 2.5.0.4, this has been mitigated by wrapping the insert-file-contents-literally call in tramp-sh-handle-make-process with ignore-errors. However, handling stderr buffers in Tramp's make-process is still a mess. So I've started to reimplement this, using a named pipe on the remote machine. make-pipe-process, the natural choice, does not work for remote processes. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Sat May 15 13:33:10 2021 Received: (at 47861) by debbugs.gnu.org; 15 May 2021 17:33:10 +0000 Received: from localhost ([127.0.0.1]:49174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhyA2-0006bw-7P for submit@debbugs.gnu.org; Sat, 15 May 2021 13:33:10 -0400 Received: from mout.gmx.net ([212.227.15.18]:58779) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhy9z-0006bj-SC for 47861@debbugs.gnu.org; Sat, 15 May 2021 13:33:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621099981; bh=7I47ImtRR7qGBj18qcJabHeb+js7GzvJqQTBAdVcCxg=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=GaGPyDoawzFu/k8UuH3/mevrpHuOHSISqOhyUUDsrxqmG1dAsE9lC6XEuiPqsrHfZ uSRHLVfEjCO/EGc1NhCaw3CuhH433SjmBlj47XYuX/BL33OSXsTB0Fxg3Np+Ep/X70 kBieVTud7Asw+hqo9lTUGOdXnvelEC832E6JGoZg= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([212.91.243.135]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MTAFh-1lv0Al39p9-00UeHo; Sat, 15 May 2021 19:33:00 +0200 From: Michael Albinus To: Jim Porter Subject: Re: bug#47861: Starting `jsonrpc-process-connection' over Tramp fails if the process writes to stderr References: <87y2cyaiwh.fsf@gmx.de> Date: Sat, 15 May 2021 19:32:59 +0200 In-Reply-To: <87y2cyaiwh.fsf@gmx.de> (Michael Albinus's message of "Sat, 01 May 2021 11:43:42 +0200") Message-ID: <87mtsvgawk.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:RBM8ZXa+LsYfMz6mbg7o2xdC/xYd/LZj5/Z3NdHT+oMhJhfJr5s KZb/cZRT8dHnzIT2WUGXtEwnmRhYAWQNXP0+me9czS1MqpK0Y+Y9AlmUO6fRlSkYcGiaAYS JgmicY2BK0c1nYXH1UNWHsirKijyde0vzoriCjV/68D41KEFgFymleP/QGtsyZW8KVB1TuA nNehzsMdvYI1l4WMG5J/w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:/T2lUxMGv+M=:KLNc8O1JutIUN5tBYidPGI ujxyyPDPTm2zCxJNNVyQe133vd182eARMSfHx3ZeVXe3JY32aiew+jGIaaBQ9aCo/cgZ2OthJ ev88s01yf+1f2gXWoSVvOEAM+p5Sj3cNrRj2C4hUdWPF1PkrJxWhlGWcIWmUwohtP3IcIM2mZ Re/DcY/SoYdyzPlFWFOPMl4v4u1anchcYu5ozfMpO/PhZLA/1dzipkF9RT+4/V7SBKZ6nSFHQ 1NM1c8aIjGlLmRFcPMLYlRLg77RvQf/Q/7Ess73vN5ft93jLGLd3jdxlXL7IQVoyWCSXJxXt1 cQMQPenYR7U5g6Lsthp61nMQ6vFnTZT9wY6ftMhQVjJLn7e/PmGUlMxIKy8AIEt0jhVWoBwHM uishMub2NcYlf3QGoNHui4T/Ki5JgXm413rKMLrACCMs9v3caV+bfBzK8zZjIjVf/yH+DFw/I fWwXQPaSb+rx75KwLEFADMEPMtRgNBis4aSB2OisfCxreWIDQF02LLA16bw92dtLCep0SUEY1 RLzAuW85/tp2TTrlbW8AJOQTE94zExu7uncCeSWqzWO765KkEBb72DiYgy2GYHlvoirKcVZus 6lhXlTlNBult9NWI4U+fi06R8ywDwozOk6+3ShNybJFFeDfwnpN+BDhglMbiMr8Qx/PKwUsV/ k5rX7kZ4nwqCzSXHYMOOCMJ/DhYfgWavaJ3leYewBeZTK5WxLiAysCiTnF4kwRUWaaVbiDGka mwlgqUnI0kbL3cQDJrEZjbw1xNqNC6s7x5h8chaJ99to5UV3i0GX74Xg8Sidjy7UQmrwCn7uv NPDW0b//u19jCKuI9jXEZW8q3Kqnok1ZuQ1i1bLcTf+RJf6WXkNUR++L+hRoWmZhcPL++vTF8 r6KZBbOB1YZl8Kx50ljpeZy2QAqhrQgIDueuBct3X/olzo+gIWEsIzid0cbAX9ueB44QJJrY3 VS7CTTtFRLX+QJxGyb05tfG5wFf7xv3Fzmajf3Bly7/zvlSz5WnJF/I9mMXtsZ/VvrItRdb3W XlTj2zX3TUQfAyEQRNbIn7hV/+TPVTTi9+ZX+P4TLiS7WldMjP3f8nlzZjHRYvHlNLTwkx8bB CLmgjmG6FZMgRWCpJ1FE9wbtEd4xtu3p8H86pTlc3BoDGT226soY5DNtaKFTqL2cAU/nhTFou IZgRS2FKspRAbbUZhBg8WYv8xOd33wJDO/gXV0pPKM9Qy+yf3wvwcMdGBdp809dJiabh2cKT0 /BTIYIu5l0SNwoHOZ X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47861 Cc: 47861@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Michael Albinus writes: Hi Jim, > However, handling stderr buffers in Tramp's make-process is still a > mess. So I've started to reimplement this, using a named pipe on the > remote machine. make-pipe-process, the natural choice, does not work for > remote processes. I've finished a first shot on this, see the appended patch. Would you mind to test this in your environment, for example with eglot? Thanks, and best regards, Michael. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment Content-Transfer-Encoding: quoted-printable diff --git a/lisp/tramp-sh.el b/lisp/tramp-sh.el index 60090d31..22d31f82 100644 =2D-- a/lisp/tramp-sh.el +++ b/lisp/tramp-sh.el @@ -2723,13 +2723,12 @@ the result will be a local, non-Tramp, file name." ;; We use BUFFER also as connection buffer during setup. Because of ;; this, its original contents must be saved, and restored once ;; connection has been setup. -;; The complete STDERR buffer is available only when the process has -;; terminated. (defun tramp-sh-handle-make-process (&rest args) "Like `make-process' for Tramp files. -STDERR can also be a file name. If method parameter `tramp-direct-async' -and connection property \"direct-async-process\" are non-nil, an -alternative implementation will be used." +STDERR can also be a remote file name. If method parameter +`tramp-direct-async' and connection property +\"direct-async-process\" are non-nil, an alternative +implementation will be used." (if (tramp-direct-async-process-p args) (apply #'tramp-handle-make-process args) (when args @@ -2763,7 +2762,7 @@ alternative implementation will be used." (signal 'wrong-type-argument (list #'functionp sentinel))) (unless (or (null stderr) (bufferp stderr) (stringp stderr)) (signal 'wrong-type-argument (list #'bufferp stderr))) - (when (and (stringp stderr) (tramp-tramp-file-p stderr) + (when (and (stringp stderr) (not (tramp-equal-remote default-directory stderr))) (signal 'file-error (list "Wrong stderr" stderr))) @@ -2775,9 +2774,9 @@ alternative implementation will be used." ;; STDERR can also be a file name. (tmpstderr (and stderr - (if (and (stringp stderr) (tramp-tramp-file-p stderr)) - (tramp-unquote-file-local-name stderr) - (tramp-make-tramp-temp-file v)))) + (tramp-unquote-file-local-name + (if (stringp stderr) + stderr (tramp-make-tramp-temp-name v))))) (remote-tmpstderr (and tmpstderr (tramp-make-tramp-file-name v tmpstderr))) (program (car command)) @@ -2786,7 +2785,8 @@ alternative implementation will be used." ;; "-c", it might be that the arguments exceed the ;; command line length. Therefore, we modify the ;; command. - (heredoc (and (stringp program) + (heredoc (and (not (bufferp stderr)) + (stringp program) (string-match-p "sh$" program) (=3D (length args) 2) (string-equal "-c" (car args)) @@ -2850,6 +2850,23 @@ alternative implementation will be used." tramp-current-connection p) + ;; Handle error buffer. + (when (bufferp stderr) + (with-current-buffer stderr + (setq buffer-read-only nil)) + ;; Create named pipe. + (tramp-send-command v (format "mknod %s p" tmpstderr)) + ;; Create stderr process. + (make-process + :name (buffer-name stderr) + :buffer stderr + :command `("cat" ,tmpstderr) + :coding coding + :noquery t + :filter nil + :sentinel #'ignore + :file-handler t)) + (while (get-process name1) ;; NAME must be unique as process name. (setq i (1+ i) @@ -2912,38 +2929,16 @@ alternative implementation will be used." (ignore-errors (set-process-query-on-exit-flag p (null noquery)) (set-marker (process-mark p) (point))) - ;; We must flush them here already; otherwise - ;; `rename-file', `delete-file' or - ;; `insert-file-contents' will fail. - (tramp-flush-connection-property v "process-name") - (tramp-flush-connection-property v "process-buffer") - ;; Copy tmpstderr file. - (when (and (stringp stderr) - (not (tramp-tramp-file-p stderr))) - (add-function - :after (process-sentinel p) - (lambda (_proc _msg) - (rename-file remote-tmpstderr stderr)))) - ;; Provide error buffer. This shows only - ;; initial error messages; messages arriving - ;; later on will be inserted when the process - ;; is deleted. The temporary file will exist - ;; until the process is deleted. + ;; Kill stderr process and named pipe. (when (bufferp stderr) - (with-current-buffer stderr - ;; There's a mysterious error, see - ;; . - (ignore-errors - (insert-file-contents-literally remote-tmpstderr))) - ;; Delete tmpstderr file. (add-function :after (process-sentinel p) (lambda (_proc _msg) - (when (file-exists-p remote-tmpstderr) - (with-current-buffer stderr - (ignore-errors - (insert-file-contents-literally - remote-tmpstderr nil nil nil 'replace))) + (ignore-errors + (while (accept-process-output + (get-buffer-process stderr) 0 nil t)) + (delete-process (get-buffer-process stderr))) + (ignore-errors (delete-file remote-tmpstderr))))) ;; Return process. p))) @@ -4834,10 +4829,12 @@ connection if a previous connection has died for s= ome reason." (with-tramp-progress-reporter vec 3 (if (zerop (length (tramp-file-name-user vec))) - (format "Opening connection for %s using %s" + (format "Opening connection %s for %s using %s" + process-name (tramp-file-name-host vec) (tramp-file-name-method vec)) - (format "Opening connection for %s@%s using %s" + (format "Opening connection %s for %s@%s using %s" + process-name (tramp-file-name-user vec) (tramp-file-name-host vec) (tramp-file-name-method vec))) @@ -5937,8 +5934,6 @@ function cell is returned to be applied on a buffer.= " ;; session could be reused after a connection loss. Use dtach, or ;; screen, or tmux, or mosh. ;; -;; * Implement `:stderr' of `make-process' as pipe process. - ;; * One interesting solution (with other applications as well) would ;; be to stipulate, as a directory or connection-local variable, an ;; additional rc file on the remote machine that is sourced every --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat May 22 00:53:30 2021 Received: (at 47861) by debbugs.gnu.org; 22 May 2021 04:53:30 +0000 Received: from localhost ([127.0.0.1]:38133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkJdi-0008Th-Aj for submit@debbugs.gnu.org; Sat, 22 May 2021 00:53:30 -0400 Received: from mail-pj1-f49.google.com ([209.85.216.49]:39429) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkJde-0008TR-Up for 47861@debbugs.gnu.org; Sat, 22 May 2021 00:53:28 -0400 Received: by mail-pj1-f49.google.com with SMTP id o17-20020a17090a9f91b029015cef5b3c50so8381047pjp.4 for <47861@debbugs.gnu.org>; Fri, 21 May 2021 21:53:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PNzcMticnzBiu4mZt2hSUvbRIasH8FumAklcNz0zn7w=; b=ZM79Wnr+B1Avucifrf2mQovcFe+GS1SjobQJOdHvLwrYscnfVnCOIKxBd6zNq1gaEA 9gYSyQN1xu3hAOBIJUtQClq3twGtfyyk2yVcbtjVrh+5w6blrIIWdvP/myyODMaMdevW 9xiot5sHZbcoKnP6OkzBlugqbuR+BGt0NbtboUEdFkuhhoI2c/JF0A/DtmfTIUZQd4WR sihKtO6G48CgFRZJ6e8jpw+aOdtAeVGAmrCwF1pwbabY2+onHdiTbziEo3qqvnuhQB8V Z/uQcaj5S4eFPCQs7D44ymGV0dJCs5trx/fmQw136n4ftYyhjFKx9S/cZVJDHbB4Zfyt b04g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PNzcMticnzBiu4mZt2hSUvbRIasH8FumAklcNz0zn7w=; b=TS4e5dDHRllERkgFCSLkSPGoUDHeQuvLN9kdJYyzg6S/5jj6T9jPxJiEnf4fvuao1R kK5Fa3ImNEm9tBIltseKjKynWxi3V1qssWfcyXmhXXZSAHGpX+cRZxzoNAKcjdjG8oJR vchtziVT38LiRFqGry5A6zFdbAOOk5j8tcTPaP/4Il3o8pdFuDx+95V7OEwp/8d4KAYB fty3qM8GFV6ArSKxcTkSFNXzYuL/wn/HrwmH+ZNCxIJNGctXPl1BSLXef7n9+RQrxkvs XhcxLwpFUyj/SUMWPS7y0G8ApHRQGufWaMyoVd5oa4mNIBnBRtb9jDey6wq1+/7jL37z CdMQ== X-Gm-Message-State: AOAM531YoSHMa9BEVo98/eQ8KFnnVvSpufajvLZLiXmV4LP+IcuI+puX HMp+ln4lsVcBC88VqBs2UNkcvy47drgEvwWR410= X-Google-Smtp-Source: ABdhPJzxvl9o87MwAI5y/WX0boeLapsUI4GMrLuY9A7J7a/qY5V8SpSQMwjsFApilU2Fw5JUx5cvtQxQjXnMdpgA+4w= X-Received: by 2002:a17:903:3046:b029:ee:f24a:7517 with SMTP id u6-20020a1709033046b02900eef24a7517mr15685722pla.17.1621659201082; Fri, 21 May 2021 21:53:21 -0700 (PDT) MIME-Version: 1.0 References: <87y2cyaiwh.fsf@gmx.de> <87mtsvgawk.fsf@gmx.de> In-Reply-To: <87mtsvgawk.fsf@gmx.de> From: Jim Porter Date: Fri, 21 May 2021 21:53:10 -0700 Message-ID: Subject: Re: bug#47861: Starting `jsonrpc-process-connection' over Tramp fails if the process writes to stderr To: Michael Albinus Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 47861 Cc: 47861@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sat, May 15, 2021 at 10:33 AM Michael Albinus wrote: > Michael Albinus writes: > > > However, handling stderr buffers in Tramp's make-process is still a > > mess. So I've started to reimplement this, using a named pipe on the > > remote machine. make-pipe-process, the natural choice, does not work for > > remote processes. > > I've finished a first shot on this, see the appended patch. Would you > mind to test this in your environment, for example with eglot? I've tested this patch (using commit e89a2304a152d6ee9e5d75efe0d22cabab771388 from the Tramp repository, which includes your above patch), and everything works correctly as far as I can tell. I also wanted to be sure I could still reproduce the original issue, so I confirmed that if I roll Tramp back to a previous revision before your workaround (I used commit f9301e5d4424bd567dc212f579350c5e04397ba1), I see the bug again. Thanks for the fix! From debbugs-submit-bounces@debbugs.gnu.org Sat May 22 03:28:06 2021 Received: (at 47861-done) by debbugs.gnu.org; 22 May 2021 07:28:07 +0000 Received: from localhost ([127.0.0.1]:38246 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkM3K-0004GK-Nv for submit@debbugs.gnu.org; Sat, 22 May 2021 03:28:06 -0400 Received: from mout.gmx.net ([212.227.15.19]:46013) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkM3J-0004Fo-8y for 47861-done@debbugs.gnu.org; Sat, 22 May 2021 03:28:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1621668478; bh=9v7QHPSknov3PSO6PmB6EQI+hAh+53NPJd/TKJf1YBA=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=LJB15DX+kx9FPDdSmz+TxnexQgEV811hCcXKwwrMhb5KDMPYvi6Cv2bTkeSANrIoQ Cg3EG3vyLMfX7VkUgUYAhiCLccKd/ONJYWEqWZ6u1krlsDtRk0kYuiVAQgd/pCeuDw j1QDD9slw3YpvkoBS2iRMySd93ZRta03ATkArw5s= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([79.140.119.224]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MCbIn-1lcLQT1xcB-009kMo; Sat, 22 May 2021 09:27:58 +0200 From: Michael Albinus To: Jim Porter Subject: Re: bug#47861: Starting `jsonrpc-process-connection' over Tramp fails if the process writes to stderr References: <87y2cyaiwh.fsf@gmx.de> <87mtsvgawk.fsf@gmx.de> Date: Sat, 22 May 2021 09:27:57 +0200 In-Reply-To: (Jim Porter's message of "Fri, 21 May 2021 21:53:10 -0700") Message-ID: <87k0nrqlc2.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:9tR1RMsJB5a0SG9VQ45VQlF1ayRDpHOGw+TtNWP1rAIf7SdnkaZ /FV42yBzHlnI3wt2bkxUy8+4sGXAHSbwZk5DQTYK0T4d3N0jZF653ZgqeYwahRGh7fEy5xH ZnWGt7WQzixsZDCNC104G0l4cmPpSxEOZu9+AKmzSXj6oRCYJ0hzmSxSfUNeC5R3tbNGr14 +XOPXzOTQ9SlZPIitFnTg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:XwDM1UyXj7M=:YRmE/Wv33OPU0HadCeqgqO IPdVUsn+olxUU5VUH5a/rnSNkPxoAawUMfGn9va0js97PKfYRyGAhfq2v6H3mXa7jfVWHQi9A wty0vB8pKkhs/vJY1luKfBAm22LoNz8qeFZDg7+iDc73jTdWYRd27BbS6ew1YmAYbC/WGNwtF 4H3VjyFesbaGSG+Ikaskv0LSjI5K8a1U2GVtTX2F4ZPTvmPDiBH4mLjkaULpyDL5YCkP0aMY4 IawqjpPG1GZVNA8ZD1Tx5tibyjUEs9nVJ1Cw6NV+nvCexwlH2K2MfhRpFasdlvJsXFGBIsHMj koLt3CMto+hiA/CrlRLRJyh14El/mp9x5/74NNAzbVtTMP4IYgp29UFNUAwp9NtdhpzhY594i PWu0JO2LieCHzNeeUTERX4HE5wjaOr6+//bvQFsDwXl1MCtqHQ9SZ2L22q1PM/viJQ4cgrvwN /P9pj3ScBSXRbRVPIjfeSH5m7iCtcFzv6oplaWUDsAuut+T1zmz4sm68bUZF9ztAIViLLDfHP rmML/qxuW6rLeiKau1kQQ4Dxy3y9JgJC1GGJUYxO7sGHS0AYVLo7b/ZEZK7kMt6MJZf+N1IQT 026yfPCuUCwdvJCrhqPEMVyWqx9GJ6UnJnLvxrdgJx+4ZHr1vKqceQLNWyxHJBQs8Ir9pZ595 kn8UqBOcIY3xG5LrkvtZHtv5pRnaJtVS978kNOZZGY7YpeBjWH9dbX9aVQXZfRju0tqOyr2Lc y8XyV5ok66N6UuYQdPH4crmM79hFsQMwO56FKJnUGifvOXj5KOPppqv6zQSBVl1uCTOVanGQy D9kicScODqXya7YdVy2eqZ0dbMuJvuxg1oFaAAooj7D8NWDd6DfuWK9lUyzkeTfIHnkhfzvO5 2ZssErnFABTy1NzLKo+DMFng9jh46sjLMukiWz9lvosw5BSDo/YldjVp/cONAV0hHO2lpczzk DYD892PqBtm+3H2E1tATZpyfPhqpy0qURnYAIAiAM7bX5h8sVuECdgKd96xdNxrRakfQ+Vt7l SfP17+Roxbq7hKKB1Hkq8HA5zWNPTvIGbeu0npK4YA0JZUaJiIwtacoY4/+MEtPkwyr1XHT+H xn+xhUDoJNoJTSuBgtO70zMB4Tzj6obDBHuLRgt/lTSKRd+HV3ACWbUxdRQKDQ2hHhMd+Qmsx pwqcnTo7ZcSC+4KIAuWm7zhDzahB12kwiqlqulELDqtt6QoqpldZEfrI+U+Zbnq+HbUCisA6n ot2hAZvyt2x80Or/D X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47861-done Cc: 47861-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Version: 28.1 Jim Porter writes: Hi Jim, >> I've finished a first shot on this, see the appended patch. Would you >> mind to test this in your environment, for example with eglot? > > I've tested this patch (using commit > e89a2304a152d6ee9e5d75efe0d22cabab771388 from the Tramp repository, > which includes your above patch), and everything works correctly as > far as I can tell. > > I also wanted to be sure I could still reproduce the original issue, > so I confirmed that if I roll Tramp back to a previous revision before > your workaround (I used commit > f9301e5d4424bd567dc212f579350c5e04397ba1), I see the bug again. Thanks for the feedback! I'm closing the bug, the patch will be included in the next Tramp 2.5.0.5 version. > Thanks for the fix! Best regards, Michael. From unknown Sat Jun 21 03:25:48 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 19 Jun 2021 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator