GNU bug report logs -
#62194
30.0.50; Two Eglot-over-Tramp tests are failing on master, passing on emacs-29
Previous Next
Reported by: João Távora <joaotavora <at> gmail.com>
Date: Tue, 14 Mar 2023 23:07:01 UTC
Severity: normal
Found in version 30.0.50
Done: Michael Albinus <michael.albinus <at> gmx.de>
Bug is archived. No further changes may be made.
Full log
Message #56 received at 62194 <at> debbugs.gnu.org (full text, mbox):
João Távora <joaotavora <at> gmail.com> writes:
Hi João,
>> The example given by Thomas blocks, again. So we are back to the
>> beginning, aren't we?
>
> Doh! I gave you a wrong patch-0003. It needs a tweak.
>
> You can either apply this one-line diff or re-aplply attached patchset
> of 4 over origin/master again.
>
> Then please try again, and sorry for the extra confusion.
>
> diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
> index 885b29f9471..a7406a9d80e 100644
> --- a/lisp/net/tramp.el
> +++ b/lisp/net/tramp.el
> @@ -5804,7 +5804,7 @@ tramp-accept-process-output
> (v (process-get proc 'vector)))
> (dolist (p (delq proc (process-list)))
> (when (tramp-file-name-equal-p v (process-get p 'vector))
> - (while (accept-process-output p 0 nil t)))))
> + (while (accept-process-output p 0)))))
> (with-current-buffer (process-buffer proc)
> (let ((inhibit-read-only t)
> last-coding-system-used
>
>
> I've tested Thomas's example 5 times in a row, moving around energically, in
> the Emacs -Q, exercising multiple Eglot features, etc. 0% failures.
I've applied the patch, but Thomas' recipe still blocks for me. Sorry to
tell you.
For comparison, here's the version of tramp-accept-process-output used
for this test:
--8<---------------cut here---------------start------------->8---
(defun tramp-accept-process-output (proc &optional timeout)
"Like `accept-process-output' for Tramp processes.
This is needed in order to hide `last-coding-system-used', which is set
for process communication also.
If the user quits via `C-g', it is propagated up to `tramp-file-name-handler'."
(when-let (((process-get proc 'shared-socket))
(v (process-get proc 'vector)))
(dolist (p (delq proc (process-list)))
(when (tramp-file-name-equal-p v (process-get p 'vector))
(while (accept-process-output p 0)))))
(with-current-buffer (process-buffer proc)
(let ((inhibit-read-only t)
last-coding-system-used
result)
;; This must be protected by the "locked" property.
(with-tramp-locked-connection proc
;; JUST-THIS-ONE is set due to Bug#12145. `with-local-quit'
;; returns t in order to report success.
(if (with-local-quit
(setq result (accept-process-output proc timeout nil t)) t)
(tramp-message
proc 10 "%s %s %s %s\n%s"
proc timeout (process-status proc) result (buffer-string))
;; Propagate quit.
(keyboard-quit)))
result)))
--8<---------------cut here---------------end--------------->8---
Best regards, Michael.
This bug report was last modified 2 years and 59 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.