Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on master, passing on emacs-29

From: Michael Albinus <[email-masked]>
Date: Thu, 16 Mar 2023 13:02:01 +0100

João Távora <[email-masked]> writes:

Hi,

> I'm "against" this too, but hard facts here trump arguments and opinion.
> This is exactly what fixes the ControlMaster hang, that's well understood,
> and is really intended. It brings about some other failures but I've just
> confirmed that if you put
>
>    (while (accept-process-output p 0 nil t))
>
> then all's well.
>
> Of course, it's only _one_ of the ways to fix the problem.  If you have another
> more elegant one, but I don't know if signals is a great one.  I'd guess
> SIGWINCH to be somewhat limited in platform support, right?

I'm also against using SIGWINCH at this point. It isn't portable, and it
isn't even known whether it is needed always. The proposed patch wraps
it by

--8<---------------cut here---------------start------------->8---
(when (and (not result) (process-get proc 'shared-socket))
--8<---------------cut here---------------end--------------->8---

But the reason why result is nil could be simply the case that the
remote side hasn't something to tell yet, and we need to wait.

And this would complicate the scenario further. We have already a very
fragile tramp-accept-process-output, which has changed again and again
ove the last 20 years. I *really* would like to see a simple and robust
implementation.

My attempt with the additional process property `shared-socket' has
failed, and I've reverted it.

Pushed to master. The Eglot Tramp tests pass now, so I recommend to
close this bug.

> João

Best regards, Michael.