Subject: Re: bug#61350: Eglot over Tramp freezes with large project

From: Michael Albinus <[email-masked]>
Date: Thu, 02 Mar 2023 12:50:39 +0100

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

Hi João,

>>> Michael can probably confirm, correct or deny this.
>> More or less correct.
>
> Actually, I don't think it is correct, at least not the way I meant it:
> JSONRPC data never gets into the tprocess's buffer.  Experiments also
> seem to disprove it.

Hmm, right. *When* output arrives, it is pushed into the right
buffer. But sometimes, the expected output doesn't arrive.

>> But I still can't say which process gets output
>> when, because I cannot debug accept-process-output (it's a C
>> function). And running Emacs under gdb changes timings, which is
>> important I believe.
>
> Yes, we must probably write some gdb scripts.  Eli is expert at that,
> but I've done some it myself.

If you like, pls. I'm not so fluent with process handling in Emacs C core.

> When you press C-g after the hang occurs, the backtrace is correct but
> the tprocess buffer is simply empty, according to the new logs.  IOW the
> response Tramp was waiting for never arrived.

Result is random. Sometimes the buffer is empty, sometimes the buffer
contains the beginning of the output. The point is, that not everything
is contained, and Tramp waits for the final shell prompt.

>> Wwe must do anything, solving this.
>
> I don't understand what you mean here.

Fixing the "Forbidden reentrant call ..." error now and forever.

> João

Best regards, Michael.