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

From: João Távora <[email-masked]>
Date: Mon, 27 Feb 2023 09:35:42 +0000

Michael Albinus <[email-masked]> writes:

> João Távora <[email-masked]> writes:
>
> Hi João,
>
>>>>> It wasn't lost. The process output was retrieved and placed into the
>>>>> Tramp buffer, w/o Tramp's interaction.
>>
>> Can you confirm that you no longer believe this to be the case?
>
> I don't know whether it was Tramp's accept-process-output call, or
> another one. But yes, this doesn't seem to be a problem.
>
>>> But yesterday's debugging has shown, that ssh ControlMaster
>>> seems to be guilty; it cannot handle large amount of data reliably.
>>
>> So maybe one should disable it by default.
>
> No, not by default. It improves performance.

So would you buy a very fast car that only explodes 10% of the time :-)
I think that these kinds of features should be opt-in, at least until
one is more sure of their stability.  Here, this looks like an unstable
feature.

>> How does one disable it? I have trouble understanding from
>> tramp-use-ssh-controlmaster-options and
>> tramp-ssh-controlmaster-options.
>
> RTFM. The Tramp manual says
>
>    If the ‘~/.ssh/config’ file is configured appropriately for the above
> behavior, then any changes to ‘ssh’ can be suppressed with this ‘nil’
> setting:
>
>      (customize-set-variable 'tramp-use-ssh-controlmaster-options nil)
>
>    This should also be set to ‘nil’ if you use the ‘ProxyCommand’ or
> ‘ProxyJump’ options in your ‘ssh’ configuration.

I had read the docstrings.  Neither the docstrings nor this manual entry
unequivocally states how to _guarante_ the SSH "controlmaster" are _not_
used for TRAMP.  It is something like this?

  (setq tramp-use-ssh-controlmaster-options t
        tramp-ssh-controlmaster-options "")

I understand you appreciate this feature and it has advantages
elsewhere.  But I we can recognize that, as things stand, it is a
non-essential performance optimization that wrecks Eglot functionally.

Until the problem is fixed, it's important for Eglot users to know how
to turn it off guaranteedly, at least for the duration Eglot sesssions.

This will helps us clear a big slice of doubt/uncertainty in all the
Eglot TRAMP-related bugs (of which there are many).

João