GNU bug report logs - #62194
30.0.50; Two Eglot-over-Tramp tests are failing on master, passing on emacs-29

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: João Távora <joaotavora@HIDDEN>; dated Tue, 14 Mar 2023 23:07:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 18 Mar 2023 11:27:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 18 07:27:38 2023
Received: from localhost ([127.0.0.1]:46415 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pdUio-0003q0-7t
	for submit <at> debbugs.gnu.org; Sat, 18 Mar 2023 07:27:38 -0400
Received: from mail-oa1-f44.google.com ([209.85.160.44]:44843)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pdUim-0003po-2u
 for 62194 <at> debbugs.gnu.org; Sat, 18 Mar 2023 07:27:36 -0400
Received: by mail-oa1-f44.google.com with SMTP id
 586e51a60fabf-176261d7f45so8336426fac.11
 for <62194 <at> debbugs.gnu.org>; Sat, 18 Mar 2023 04:27:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1679138850;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=kVgAQAtxG994aS6yIQiXGKn1Iu994P2Cv2fsf8fMChI=;
 b=dD6nO8Mw4vlzaXPxHX+WZiKcIZdJrkMxAxmtaHKTbluLy43kSBJteo5JDX3krGS/oP
 LKa1ZX4KLBqOZBpDBPId1HNTUAWsSNvkQZlVGX87W7GdzqJGfxzDWnOjZuzCQm1FcYjV
 8gqeQdXapEksI1SaC2TksDRkXWFT/tRH8EoavXqpHFqwhaLfwxnKPyy+muS7IFWvpin6
 gwTRTna56mvt5GihKw7MZxIOZWew1c003o9cFyHbbOb3B9D1tmpF58NNktYW0oUlhwJT
 cfaEsTYThHve5QV4HxpQ/YNEkrmuNkjQz8hkGVCXT15TwPwVeKzS4wBP3/+xzvMwSh6o
 wvhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1679138850;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=kVgAQAtxG994aS6yIQiXGKn1Iu994P2Cv2fsf8fMChI=;
 b=xBu4+CxIFarHvsUHyeHdVzEFr6uQSxETo+hFlObI1oVWCVqTbsbGsjX1vlGPCWFPnV
 sOGUXOPcuz18W2rpf7gY6Ove6nHf20JA/FYuu+TUPACqqoBbFRmHdVEGnrcqES+HpqrD
 J5MvQBuSN4/Ne9Ig5scCIBFK+fHB1U1EtudGdWr3Hdj2gUTvqTL3VjibNZjip4BH74A9
 sF+WmG0E8Ebsqlwj1wcqpu1CJYGgmZhOPX+xPL/m5w0EJzF4OO1BS80witU/Z2kJoj+v
 lE/xmOUKRN5y2TlPfqYqq7wW9DMcf4T60LTZzl2URkWVGCMpwuB0RSk9xCpRHho4I6Ey
 +b8g==
X-Gm-Message-State: AO0yUKW2xlqiULgUSZHNGZt6RREn3v4kG9+ilEyj9bosEyCeDbMOycuA
 diRD/GAcmaZE42pV3Po0kr2Orb/uZ5EEFewarsI=
X-Google-Smtp-Source: AK7set8XnlPoGukyDGenEoQpnZ5j8Y91vjAcYa+fIAvy5yzCwY5Ss1g5B8lxhbG16tpLwtld/EsoSrlGma6iCmop50o=
X-Received: by 2002:a05:6871:8a85:b0:17a:df9b:6b1b with SMTP id
 tm5-20020a0568718a8500b0017adf9b6b1bmr511120oab.5.1679138850435; Sat, 18 Mar
 2023 04:27:30 -0700 (PDT)
MIME-Version: 1.0
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN> <87wn3g1ssd.fsf@HIDDEN>
 <87fsa3ejxq.fsf@HIDDEN> <87pm97eibv.fsf@HIDDEN> <87mt4az9eo.fsf@HIDDEN>
In-Reply-To: <87mt4az9eo.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Sat, 18 Mar 2023 11:29:21 +0000
Message-ID: <CALDnm53Gm7LoE0VQabSidJ98E4Da9xUW4QMkxfKGQA5aXb6BzA@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
To: Michael Albinus <michael.albinus@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Sat, Mar 18, 2023 at 9:38=E2=80=AFAM Michael Albinus <michael.albinus@gm=
x.de> wrote:
>
> Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:
>
> Hi Jo=C3=A3o,
>
> >> I've applied the patch, but Thomas' recipe still blocks for me. Sorry =
to
> >> tell you.
> >
> > Drats.  Reproduced.
> >
> > I honestly don't know what's going on.  Yesterday I got 0% failures,
> > today I get 100% failures with the very same code.  Maybe there is some
> > SSH/ControlMaster thing at the OS level that's tainting the experiment.
>
> So I propose we let the state as-it-is in master. The relevant tests
> pass successfully, and we have your workaround in eglot.el, which makes
> the situation a little bit better.

I propose we still revert the two of your latest patches.  The situation
stays exactly the same in practice for now (bug#31350 broken, this bug
fixed, workaround in place, no-one knows what is really happening), but
with the added advantage that the code is still the same as in emacs-29.


> Just one remark: perhaps you could
> change this to
>
> --8<---------------cut here---------------start------------->8---
>                         (let ((default-directory default-directory)
>                               ;; bug#61350: Tramp turns on a feature
>                               ;; by default that can't (yet) handle
>                               ;; very much data so we turn it off
>                               ;; unconditionally -- just for our
>                               ;; process.
>                               (tramp-use-ssh-controlmaster-options 'suppr=
ess)
>                               (tramp-ssh-controlmaster-options
>                                "-o ControlMaster=3Dno -o ControlPath=3Dno=
ne"))
> --8<---------------cut here---------------end--------------->8---


> For the Tramp < 2.6.0.3 it still works, because
> tramp-use-ssh-controlmaster-options is non-nil, and
> tramp-ssh-controlmaster-options is used. Starting with Tramp 2.6.0.3,
> the value `suppress' forces Tramp to compute its own
> tramp-ssh-controlmaster-options, which might be the same, or not. But it
> is Tramp's responsibility to DTRT.

Makes sense.  If it's just this change, you can push this yourself.
Thanks in advance.

> Note that I have plans to enable shared connections also for PuTTY, by a
> similar option tramp-use-shared-connection (or similar, not decided
> yet). But this will be relevant for MS Windows users only; I don't know
> how many of them use eglot. And it will definitively be in Tramp 2.7
> only.
>
> As proposed. we shall close *this* bug. The reported problem is fixed,
> and for everything else we have bug#61350.

OK.

Just a heads up, I asked for bug#61350 and this one to be "merged"
earlier.  Don't know what debbugs did about that, but didn't see any
practical effect

> > FWIW, removing the JUST-THIS-ONE make Thomas' example always pass, but
> > it has other implications like the re-entrancy thing, which I don't
> > understand.
> >
> > I don't have any better ideas at the moment, other than just biting the
> > bullet and reading Tramp's code very closely.  I'll try my hand at
> > adapting a process-filter into it as I described in bug#61350, but I
> > don't know if I'll manage of course, since I'm not closely acquainted
> > with the API.
>
> I will continue to bring threads into play with Tramp, again. Slow
> progress only. But perhaps, it helps to improve the situation.

I think you should consider bring stuff _out_ of Tramp instead of _in_.

Consider removing tramp-a-o-p entirely, and segregating/segmenting
messages in a process filter.  This segregation is entirely textual
(no fs primitives) and does run the risk of reentrancy.  Then -- for
sync APIs -- 'throw' the complete message into whoever is blockingly
waiting for the answer with (catch ... (while (accept-process-output p))).

I've given a working example in bug#61350.  If you need timeouts
I can show you how to add them.

Jo=C3=A3o




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 18 Mar 2023 09:38:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 18 05:38:52 2023
Received: from localhost ([127.0.0.1]:46220 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pdT1X-0006g8-V7
	for submit <at> debbugs.gnu.org; Sat, 18 Mar 2023 05:38:52 -0400
Received: from mout.gmx.net ([212.227.17.22]:40143)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pdT1W-0006fv-Aj
 for 62194 <at> debbugs.gnu.org; Sat, 18 Mar 2023 05:38:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1679132323; i=michael.albinus@HIDDEN;
 bh=sSMpQpvFCTJb837ZECSf53vxh3lB9e15QuQu7zU/fko=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=DHzx+lnFm3pg0UoT4NH2+Jq0qVJ/ch2VaP1asVX1pq6H83wwipqCMrngYS/yZnZrp
 yMqKQn4IZkG8HAnbmWyeZogFCk4bJS5TgXaFWK1cGdYckkDfjyqzJqZirSVkUIR3f5
 GFZeAkNeA78VnjGkV6mmye04p4mkYK6k/tnfyHMkCY1knAtR8ZK+w4piyd/Y6FkEjc
 znnbaUHxwLO4eES6Vg8v1AIio4KQ+iNF92dM/L2y3cRHJ/iJjFQ32qsaUs4QmInPXY
 ZQeLmxe646Qhc7HQs6Ha/E5IsG9I2e9k/1MvBJHKqaehgBVUBpJB/r7pAljuI01QM5
 TzZ6Lwcf8nHRg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.19]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MQvD5-1ppvEq0yE3-00NyUI; Sat, 18
 Mar 2023 10:38:43 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87pm97eibv.fsf@HIDDEN> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?=
 =?utf-8?Q?a=22's?= message of "Fri, 17 Mar 2023 11:19:16 +0000")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
 <87pm98iw1e.fsf@HIDDEN> <87fsa43f36.fsf@HIDDEN>
 <87sfe4eh09.fsf@HIDDEN> <87wn3g1ssd.fsf@HIDDEN>
 <87fsa3ejxq.fsf@HIDDEN> <87pm97eibv.fsf@HIDDEN>
Date: Sat, 18 Mar 2023 10:38:39 +0100
Message-ID: <87mt4az9eo.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:TrT9+OLv+/imkldSc3TF3cYk7RpiSSUQFWiz1B3BevuF5uJe41c
 yt9pGcfrzTMILITN+a69LD5GQb6P/RLkL3Ll4Pyuljw56zB1jjTIcPiiaDvSKVeRgxfdVsj
 kB59net2b1f0ieSLpK51ydd0DYBkETflWnuYSZZp2ZpET6DqFsqpfUt38WNEMZsaXGJLV68
 0kd0127y1tM7GxzkcwALA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:93YpQ0OL3kQ=;cr1E7TK8vJX4Ed8BG35loOTOrFq
 osc2RJoGvDUGM4cSx48/HT+VXwahXpeFU1bQDTSQqF4QkozgYyzQMrP4CaSJb/dPEB5EQll2Y
 4j0iySKdC0SsEqK5Y8d5NfcNuvWk2tgFb+Ju2N470y5rCv8dqnOOm36sUjdeN5kT+q5ADSQI9
 gWK2A6c86b4HpojlkxHeBpkiFp5j7kts+LP3/U/G2d/6+O8f7S0s/9eFwUSZQYShnVGrqxIB4
 qdOLcOJgaBm2kQT3clTf2FhEiIYKZH6c+Rf35T05LwTjHXEFkybOtHJY8tcE8l5M/8HiosDtm
 x5uL6O5QBOhzTXJVpZNobY0Pv8srBN9cLat3mWJQSWu3KQz9nQQHBuFfevrUFcBP4acXIfxyO
 DVgHRe7mmme07Tvja6Rg/mf+m09lrAlyBCBaOlVQ3tSWw2e5YjEzOz/me5/jV5JmnJ/wRgmOh
 xCL/aafHiGKOwxw8Dfyy8Yp85MUgJh1IWt5DXwdv6VI6GnoWCatCaQBJ74aT9ggZLLDQDqKrs
 qrjEQiMiKF8khtieJ0TZA2Yai0xt43nQccYDiuZD3QYTxnjtxe/5aKDmr9TbbIrjwomYVOqqY
 IufbNzz0gqqP8FrytewnrxJtkYQVU5btaoRKL0PnwkS5PR0ufO9eDAgb4c+3CR7TkZ6EqL/rH
 ebNUmdxxJIQ22u0JcTY5eiG9tx5ROTJQoet7JXop9AyK7d556VV3SlJVaXlixAR1/jazwdlON
 p1jeebJrDtzNBtYtx/WkaqPufKuRDtCvP+Kn6+ddda+4wUvi+LDi6ttuuk7eL8nqnNWtBJH0m
 TuBx+aLJr6yXM16p+nL7ZV7X+eO7AGl0rYTlpRXv2io2NOzIhUakk3z9k1qqJ6JJQILDgjnqu
 +SuHbuQPjZRnqLbrFcX3CCy2CvZTMCCiHKTvpTjSUw9HE5hlpGho80Dz/7pHzyKq+DwE4bkyI
 SOD+6A==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

Hi Jo=C3=A3o,

>> I've applied the patch, but Thomas' recipe still blocks for me. Sorry to
>> tell you.
>
> Drats.  Reproduced.
>
> I honestly don't know what's going on.  Yesterday I got 0% failures,
> today I get 100% failures with the very same code.  Maybe there is some
> SSH/ControlMaster thing at the OS level that's tainting the experiment.

So I propose we let the state as-it-is in master. The relevant tests
pass successfully, and we have your workaround in eglot.el, which makes
the situation a little bit better. Just one remark: perhaps you could
change this to

--8<---------------cut here---------------start------------->8---
                        (let ((default-directory default-directory)
                              ;; bug#61350: Tramp turns on a feature
                              ;; by default that can't (yet) handle
                              ;; very much data so we turn it off
                              ;; unconditionally -- just for our
                              ;; process.
                              (tramp-use-ssh-controlmaster-options 'suppres=
s)
                              (tramp-ssh-controlmaster-options
                               "-o ControlMaster=3Dno -o ControlPath=3Dnone=
"))
--8<---------------cut here---------------end--------------->8---

For the Tramp < 2.6.0.3 it still works, because
tramp-use-ssh-controlmaster-options is non-nil, and
tramp-ssh-controlmaster-options is used. Starting with Tramp 2.6.0.3,
the value `suppress' forces Tramp to compute its own
tramp-ssh-controlmaster-options, which might be the same, or not. But it
is Tramp's responsibility to DTRT.

Note that I have plans to enable shared connections also for PuTTY, by a
similar option tramp-use-shared-connection (or similar, not decided
yet). But this will be relevant for MS Windows users only; I don't know
how many of them use eglot. And it will definitively be in Tramp 2.7
only.

As proposed. we shall close *this* bug. The reported problem is fixed,
and for everything else we have bug#61350.

> FWIW, removing the JUST-THIS-ONE make Thomas' example always pass, but
> it has other implications like the re-entrancy thing, which I don't
> understand.
>
> I don't have any better ideas at the moment, other than just biting the
> bullet and reading Tramp's code very closely.  I'll try my hand at
> adapting a process-filter into it as I described in bug#61350, but I
> don't know if I'll manage of course, since I'm not closely acquainted
> with the API.

I will continue to bring threads into play with Tramp, again. Slow
progress only. But perhaps, it helps to improve the situation.

> Very sorry for the noise,
> Jo=C3=A3o

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 17 Mar 2023 17:22:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 17 13:22:33 2023
Received: from localhost ([127.0.0.1]:45541 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pdDmj-0000rX-46
	for submit <at> debbugs.gnu.org; Fri, 17 Mar 2023 13:22:33 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52692)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pdDmh-0000rH-OK
 for 62194 <at> debbugs.gnu.org; Fri, 17 Mar 2023 13:22:32 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pdDmc-0001nC-0F; Fri, 17 Mar 2023 13:22:26 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=1VzytHkw6JYjCwJCSdiKJhF5k5Kbsg6qFk7TkaM4e4c=; b=M/bITayTn+EwPr94EojD
 NvjdqVAbPNdMkeimP0o3IykmYjQfmU/5cDG66d4qxwCHBclW1xfWMP4VuhwfslYqZjhmKBbaYDD5l
 oe6AYp3XQ/fgahqk6TZfONYYWav89bSekv6Xqsw6aCo4zwa7pj0sUxCLNiZvuuVAowUKU18o2lwA2
 /EBu6ancH4iEaTDYR+xirmBHD2DiEfjyjxiPvfuW6DkapqyxSeZQg1UDGKFKpSl1t7wC8lE2J3O/K
 Xua8cXWmum6cUeSSfSBIWuh29I8o/WZ5JEqR2cO6EpbNKY4qmhBjuA1/wKePf2cYXGRdpZlCCYCBL
 QQMEvMcN/NBVPg==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pdDmb-0007LS-GS; Fri, 17 Mar 2023 13:22:25 -0400
Date: Fri, 17 Mar 2023 19:22:26 +0200
Message-Id: <83v8izcmy5.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: <miha@HIDDEN>
In-Reply-To: <87y1nvgunt.fsf@miha-pc>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN>
 <87wn3g1ssd.fsf@HIDDEN> <87zg8co0n0.fsf@miha-pc>
 <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
 <875yaziax4.fsf@miha-pc> <83y1nvcokf.fsf@HIDDEN> <87y1nvgunt.fsf@miha-pc>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 62194
Cc: michael.albinus@HIDDEN, joaotavora@HIDDEN, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: <miha@HIDDEN>
> Cc: michael.albinus@HIDDEN, joaotavora@HIDDEN, 62194 <at> debbugs.gnu.org
> Date: Fri, 17 Mar 2023 18:22:14 +0100
> 
> From '(elisp) Output from Processes':
> 
>    Output from a subprocess can arrive only while Emacs is waiting: when
> reading terminal input, in ‘sit-for’ and ‘sleep-for’, in
> ‘accept-process-output’, and in functions which send data to processes.
> 
> From my understanding of process.c, wait_reading_process_output normally
> needs to be in the call stack in order for process filters to run.

And it is, when Tramp calls expand-file-name and waits for the
response from the remote.

Moreover, there are situations in Emacs when we eventually call
wait_reading_process_output as result of Lisp code that doesn't
necessarily imagine something like that could happen, nor can control
that.

IOW, it is not easy to know from the Lisp level whether Emacs is going
to "wait for something" as part of running some Lisp program.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 17 Mar 2023 17:17:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 17 13:17:30 2023
Received: from localhost ([127.0.0.1]:45531 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pdDhp-0000i9-V1
	for submit <at> debbugs.gnu.org; Fri, 17 Mar 2023 13:17:30 -0400
Received: from mail.kamnitnik.top ([209.250.245.214]:55148)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <miha@HIDDEN>) id 1pdDhn-0000hx-DQ
 for 62194 <at> debbugs.gnu.org; Fri, 17 Mar 2023 13:17:28 -0400
From: <miha@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kamnitnik.top;
 s=mail; t=1679073444;
 bh=S+YNxvEJR6xaDX+yu1Lb12AFZ7VYfSjrHM+2Fn1827k=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=iktY5Kqb8lUa/9XiINNO21yOkgHMogBGemP2on+pF5HPuOf8gZQDzLO/b8GPuLzHM
 1jlHvmFaCgDa5Xvu1F4zh3DScig0YDBVsuX8uKwxAqryuN5Nmc4blQPm5SdPa9kXBL
 DOZtflGBwOTj7AmtRlL6QWO3GugLsNfbvkXm95Q4yWnKrYqRmL14cpOvFrqjamRW5G
 P7mpc4jRFOVzunmo5bGB+mLdwz8X2jefxqqM6XDzjk+hzU9ZedeSGU4GZjv/HpnGGt
 0cfKUwAJOJg/GsNHYIWB+zj6stcOkc57GHff/EOl6mIPV9CydBAmP/lhVUlrLx1a69
 5AnfGki/lql8Q==
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <83y1nvcokf.fsf@HIDDEN>
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN>
 <87wn3g1ssd.fsf@HIDDEN> <87zg8co0n0.fsf@miha-pc>
 <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
 <875yaziax4.fsf@miha-pc> <83y1nvcokf.fsf@HIDDEN>
Date: Fri, 17 Mar 2023 18:22:14 +0100
Message-ID: <87y1nvgunt.fsf@miha-pc>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: michael.albinus@HIDDEN, joaotavora@HIDDEN, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Eli Zaretskii <eliz@HIDDEN> writes:

>> Cc: Michael Albinus <michael.albinus@HIDDEN>, 62194 <at> debbugs.gnu.org
>> Date: Fri, 17 Mar 2023 17:45:43 +0100
>> From: miha--- via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>=20
>> Though I do think that if a function that calls a-p-o with
>> JUST-THIS-ONE=3Dnil isn't internal, it should mention that it can run
>> timers in its doc string.
>
> I don't see why: timers can run in Emacs almost anywhere, so
> mentioning that in doc strings of every function makes little sense.

I'm not completely sure how timers work, but

>> But here we are talking about 'expand-file-name' and other functions
>> from tramp-sh-file-name-handler. For these, I disagree that we want them
>> to accept output from other processes and call their filters.
>> 'expand-file-name' and others are used often and, for most of the
>> existence of Emacs, they did not call proc filters. I think it's
>> dangerous to have them do it now.
>
> Process filters can be also called at any time, because they basically
> depend on when the output from a subprocess arrives.  Why would you
> want that to stop while Emacs processes expand-file-name?

From=20'(elisp) Output from Processes':

   Output from a subprocess can arrive only while Emacs is waiting: when
reading terminal input, in =E2=80=98sit-for=E2=80=99 and =E2=80=98sleep-for=
=E2=80=99, in
=E2=80=98accept-process-output=E2=80=99, and in functions which send data t=
o processes.

From=20my understanding of process.c, wait_reading_process_output normally
needs to be in the call stack in order for process filters to run.

>> 'expand-file-name' is synchronous, therefore tramp has to make it use
>> accept-process-filter (tell me if there's another way). It can use it in
>> roughly two ways: with JUST-THIS-ONE=3Dt or JUST-THIS-ONE=3Dnil. In the
>> first case, we hit the eglot-over-ssh freeze problem and in the second
>> case, we'll have 'expand-file-name' call timers and process filters,
>> which I explained above why I don't like.
>
> I think you should teach yourself to like that.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQJHBAEBCAAxFiEEmxVnesoT5rQXvVXnswkaGpIVmT8FAmQUocYTHG1paGFAa2Ft
bml0bmlrLnRvcAAKCRCzCRoakhWZP1RFEACVkaaS8EGmHHr0752kkUj5u7Qt5QGG
oHqKWHshlzpJxiAYJFxWu7i60KQ4ZXV5sWP68/nbjvDU8swnjK090dIQ1/iKwSWL
zdVS4RxZIydgQ7mUUXUvZqu8VDgFjOLhOe4ZaaYHLqhQEg26u/LoIu1V2aAuCmHw
BJl3RGIMCEelx4i5eVTbK7o4Ti0hkdhdK5AIyGzXhRoB0pATbaPzOakBVQFYzyZG
b363kyV2QN0OEiDcIBieZtVJT7yUYQK/EvFZFNvvA7oqWKdH4aPXZTHHlm6TFpn6
hPWNVXWNpmokTTfz3CE2s1AGJX0XZWptSFSyRCjnouEubWeFdenuWWlJ8celx2/6
LxkYJt360GAqHzfohKty3vmDk7n/2i/JuWgTFGtBeEn47e4V1txN2VD2DrviUbdp
GmISi4TlFHjhGQt6Ladwe65TT5VPWhRy9es/HC+fHyuXwLSfdMSRxlqNVHFydJvo
xyGzJZ6JxdM4EDdc6tifzEWw51wW6AsEAttBDaPJ4DIIf0IMqzJKI2r73Jj1oAua
HhdBzPqIvbbC1ealnZ/lvSgirAoDoQwrNz6+R1pfMdoq/+niLCBxf5zf7OH+0wTk
lQgqis2qPGNtME6O+rszgnZdKq+C6B7E8f5GLKjwNbRanXKfLwAJjPTA7h3svkLD
yI0mAQf7ZK0UvA==
=QZDU
-----END PGP SIGNATURE-----
--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 17 Mar 2023 16:47:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 17 12:47:35 2023
Received: from localhost ([127.0.0.1]:45493 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pdDEt-0005mQ-Eb
	for submit <at> debbugs.gnu.org; Fri, 17 Mar 2023 12:47:35 -0400
Received: from eggs.gnu.org ([209.51.188.92]:33152)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1pdDEr-0005m5-GA
 for 62194 <at> debbugs.gnu.org; Fri, 17 Mar 2023 12:47:33 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pdDEl-0007zW-NZ; Fri, 17 Mar 2023 12:47:27 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=y+NYl+EEEqAuDotz9rKpkoUUaIyPwhiiZYH48rhBV2o=; b=hCGjjBj8wzDU
 DqVM18rAlY2RXHzQpdfwjYr/ck2BuDdL0meVvVK2TWGk2pofU/zuaNKnA/JNUSXOMCsVVqj48L83g
 vkI9lVh92uH+xlPBJhHqxFtWTikTZKUMGepwAaLpFFs9Jr7w8QukMuddFE+BjAcaeYQ2x3Jp3mU64
 Ns+fruKJkC0rC7imB1xgnt8q5m5ehliSgqUwg79jNGnQpBsoErN3XGlX7j4a/fFZ7ikF9uRIZNB/Y
 +sCJeJFKtevnIchoXxy5ld93oSlsk5N1yBtHMmBQPWTjT/lwr8/oQ4HQ31wI4AvWubfrTFIYnjEEn
 6FIng/qWXgifR8l7uSjDYw==;
Received: from [87.69.77.57] (helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1pdDEl-0007xH-4M; Fri, 17 Mar 2023 12:47:27 -0400
Date: Fri, 17 Mar 2023 18:47:28 +0200
Message-Id: <83y1nvcokf.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: <miha@HIDDEN>
In-Reply-To: <875yaziax4.fsf@miha-pc> (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#62194: 30.0.50;
 Two Eglot-over-Tramp tests are failing on master, passing on emacs-29
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN>
 <87wn3g1ssd.fsf@HIDDEN> <87zg8co0n0.fsf@miha-pc>
 <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
 <875yaziax4.fsf@miha-pc>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 62194
Cc: michael.albinus@HIDDEN, joaotavora@HIDDEN, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: Michael Albinus <michael.albinus@HIDDEN>, 62194 <at> debbugs.gnu.org
> Date: Fri, 17 Mar 2023 17:45:43 +0100
> From: miha--- via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> Though I do think that if a function that calls a-p-o with
> JUST-THIS-ONE=nil isn't internal, it should mention that it can run
> timers in its doc string.

I don't see why: timers can run in Emacs almost anywhere, so
mentioning that in doc strings of every function makes little sense.

> But here we are talking about 'expand-file-name' and other functions
> from tramp-sh-file-name-handler. For these, I disagree that we want them
> to accept output from other processes and call their filters.
> 'expand-file-name' and others are used often and, for most of the
> existence of Emacs, they did not call proc filters. I think it's
> dangerous to have them do it now.

Process filters can be also called at any time, because they basically
depend on when the output from a subprocess arrives.  Why would you
want that to stop while Emacs processes expand-file-name?

> 'expand-file-name' is synchronous, therefore tramp has to make it use
> accept-process-filter (tell me if there's another way). It can use it in
> roughly two ways: with JUST-THIS-ONE=t or JUST-THIS-ONE=nil. In the
> first case, we hit the eglot-over-ssh freeze problem and in the second
> case, we'll have 'expand-file-name' call timers and process filters,
> which I explained above why I don't like.

I think you should teach yourself to like that.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 17 Mar 2023 16:40:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 17 12:40:58 2023
Received: from localhost ([127.0.0.1]:45480 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pdD8T-0005au-MA
	for submit <at> debbugs.gnu.org; Fri, 17 Mar 2023 12:40:58 -0400
Received: from mail.kamnitnik.top ([209.250.245.214]:56398)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <miha@HIDDEN>) id 1pdD8R-0005al-Tu
 for 62194 <at> debbugs.gnu.org; Fri, 17 Mar 2023 12:40:56 -0400
From: <miha@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kamnitnik.top;
 s=mail; t=1679071253;
 bh=bzLpm/nKJGWV/p1jPn2pKRpeGAMjI0ln1p6PNqRITq4=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=iKUhw1slx+y3gVq3PKc6h+lGtYYkXKhha60AN0/c4ASfIuVqygDwVsAVgJSEOw6Tr
 n4F0pxy7CANixgQbS3dAOTZHIJmbFNKSiMUVUxn4It8g8bineFJOlhKmqY6CGXMsYq
 /MbVzxqWXZmPcn+/24ru0khbWVo3pjO09Ms8aOjy5EXQDoqaFMfB+bfwlHhnHMz+Y6
 wSmYUQF2pPLrxIEmJ4RuOSGK8CJAmzG2/E5J+Nnsmb4lCOB2txrhEkn3eeVZtY79/s
 qwhwWVAJGDI3bybMEjt/h7jTLjFrLfk/agJLXOw7ZcdrLT0/Pezk0Rfh610bf4GnR2
 tEjqKPpt2dZEA==
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN>
 <87wn3g1ssd.fsf@HIDDEN> <87zg8co0n0.fsf@miha-pc>
 <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
Date: Fri, 17 Mar 2023 17:45:43 +0100
Message-ID: <875yaziax4.fsf@miha-pc>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: Michael Albinus <michael.albinus@HIDDEN>, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

>> I think that accept-process-output with JUST-THIS-ONE=3Dnil is dangerous
>> here. We are now allowing 'file-exists-p', 'expand-file-name' and all
>> other functions listed in 'tramp-sh-file-name-handler-alist' to call any
>> timer or process filter,
>
> That's exactly what we want.  We _don't_ want to stop other
> output to be inhibited from going into the filter.  We want
> to let other processes slurp their input as often as possible.

Generally, I agree. JUST-THIS-ONE=3Dnil is better and it's fine to use it
in most functions as long as the programmer is careful that foreign
timers and proc filters won't interfere. Though I do think that if a
function that calls a-p-o with JUST-THIS-ONE=3Dnil isn't internal, it
should mention that it can run timers in its doc string.

But here we are talking about 'expand-file-name' and other functions
from tramp-sh-file-name-handler. For these, I disagree that we want them
to accept output from other processes and call their filters.
'expand-file-name' and others are used often and, for most of the
existence of Emacs, they did not call proc filters. I think it's
dangerous to have them do it now.

> The reason it hung with JUST-THIS-ONE=3Dt is precisely the inverse
> reason that it hangs without this hunk (say, in emacs-29).  One
> process (say tprocess) is holding its input and jprocess can't read
> it because it comes from a shared underlying SSH buffer and that
> buffer is likely full (until tprocess empties it a little bit).
>
> At the moment, it is the best we have, both theoretically and
> experimentally.
>
>> without even documenting this.
>
> This is the most normal usage of accept-process-output.
> Look at all the Emacs code base.  Basically, only Tramp uses
> JUST-THIS-ONE.  It's JUST-THIS-ONE who is the aberration.
> None  of the process-heavy SLIME, SLY, CIDER IDEs use it.
>
> You can read the manual about JUST-THIS-ONE.  It's in A-O-P.

Sorry I wasn't clear enough. I meant documenting in expand-file-name's
doc string that calling expand-file-name can now run arbitrary process
filters and timers. The same goes for other functions from
'tramp-sh-file-name-handler-alist'.

>> filter may call 'read-passwd', entering a recursive edit, in which the
>> user can kill any buffer or even a process. Or with midnight-mode
>> enabled, a timer kills buffers older than 3 days. I consider these "the
>> problem of timing errors that usually plague parallel programming", to
>> quote '(elisp) Output from Processes'.
>
> Sorry, I don't immediately see the problem.  I can't prove that there
> isn't one :-) that's near impossible.  Normally what is done
> is for the problem to be demonstrated with some experiment.
>
>> I'm not saying that my proposal with SIGWINCH is flawless and I agree
>> that its unacceptable. I'm just saying that we shouldn't be quite
>> satisfied with this solution yet, though it should be fine for some
>> time.
>
> I'm not satisfied with it myself.  This is very slow (not that it matters
> much).  But is also all around ugly.  The more correct solution is IMHO,
> described in bug#61350.  But it will take time to see if it fits into
> Tramp (I think it does) but most importantly how (that's the hard bit,
> Tramp is a lot of code)

I'm not against your way of refactoring tramp process filters but I
don't think it will solve our problems in any fundamental way for the
following simple reason:

'expand-file-name' is synchronous, therefore tramp has to make it use
accept-process-filter (tell me if there's another way). It can use it in
roughly two ways: with JUST-THIS-ONE=3Dt or JUST-THIS-ONE=3Dnil. In the
first case, we hit the eglot-over-ssh freeze problem and in the second
case, we'll have 'expand-file-name' call timers and process filters,
which I explained above why I don't like.

>> What I was thinking was perhaps to introduce a function called
>> 'accumulate-process-output' which would be similar to
>> 'accept-process-output', except that it would only save process output
>
> You can propose this in emacs-devel, but if you permit me to
> be slightly immodest, I've been coding with
> accept-process-output + filters for almost 15 years and I've never
> had the need for this.  I normally want timers and other processes
> to run, I don't want to stop the world.

This is great for other packages, but tramp.el carries the special
burden of having to re-implement 'expand-file-name' and other functions
of synchronous nature.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQJHBAEBCAAxFiEEmxVnesoT5rQXvVXnswkaGpIVmT8FAmQUmTcTHG1paGFAa2Ft
bml0bmlrLnRvcAAKCRCzCRoakhWZPwDpEACdJB25kszUkf5JpJxu1UeykLznS98H
7n8NjcEo4z79vfzY3zuvMoAjO1sh1vGBMUHh54f5gSdcY1gouBS4yX5kxB7b3EWU
IkZeUMM8++AAGcW7JbG6lTzLjR86az+dKAg/XUQ7GZKyv5IwJLzu7E+NG2MlI4uY
xvVMrsXmCZcDaedvtaI1ltrTXHg9MJAhFs0D+s9ScTgWrSi6vjtW9TjqYT37vMDe
56cOkyRPUwDKCrA50/oYpSTXaZ1EowCQ8xjrm6c92W5VjwZFmbMA+M8Bb9AeTqOe
9e/ZjUqSIANmwwq4Db4b+8k1k711hpIWUE5quWYwk2jetEDQwYSRG9YVKAKJnz6Z
Z/G8kgeeDWYpRN9Sn0L9HftVkhVFc1Zf34kdmdfYNmuPaFMHdmUszl6QA1eyfMJ4
7cA1YTEkkOewQfhyrawim9y4FNHt08vgriBuOFnPvLk4SfbGAaWl51vcrrfbjbBH
5L6yoaZ1yjYjRCWSGkjDd4pbd+nFbgF8gd3wrRkWlCsC62e5AtE/MJnAqAI3zc6A
fFLEQsYA0biRJscwW2D4BSRw/Hh4Htvp3OapVqsCrimefznlP7bCDxZi9WrAk7Sh
j4sCdNFtYm0J478KAb4d0DMHDrzHX+jtbSVN2rZIOQ8IeIzC9vA5vtHrJKM77Wt+
Tildo6jXLQduew==
=xk8s
-----END PGP SIGNATURE-----
--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 17 Mar 2023 11:17:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 17 07:17:26 2023
Received: from localhost ([127.0.0.1]:43813 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pd85N-0003xV-Nb
	for submit <at> debbugs.gnu.org; Fri, 17 Mar 2023 07:17:25 -0400
Received: from mail-wm1-f52.google.com ([209.85.128.52]:40829)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pd85M-0003xD-4h
 for 62194 <at> debbugs.gnu.org; Fri, 17 Mar 2023 07:17:25 -0400
Received: by mail-wm1-f52.google.com with SMTP id
 fm20-20020a05600c0c1400b003ead37e6588so4877265wmb.5
 for <62194 <at> debbugs.gnu.org>; Fri, 17 Mar 2023 04:17:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1679051838;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=py3WKK8DgEBbMj4vpuNm8Zwy3zIonQmIdfkUe8oH77Q=;
 b=K97YX5qLYXBEXmxwoD16vRZNHUxMQXH4CHGb7AH0fg71MiBr4JoV7j6ECsqgWBrI5f
 Bm+CNq5KB7ywNvoe610IpfN4EbiA3vKAEr5pJDzs6YDUVVAtOSATQrHCRnKqSfqDUQC8
 EoAKoneLTkxSG6IE3MhiazrMSBDtsge1ljUYUAFo0e6u0ZuoSaYeooFbM9SWwZBw2c94
 YYus5LE8W6YLaLuTL2KsWwPHXPj25k8DaM/Y7h+n9oYnyfco1iQAHLw+tF+mqiDdcYUw
 RE3JS1qQhENVvIBo67uV/hmkDS/YCIObQeWAguPUgIAOvuPS706Qk8CZbEZxraWCFeiB
 25Dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1679051838;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=py3WKK8DgEBbMj4vpuNm8Zwy3zIonQmIdfkUe8oH77Q=;
 b=vG3N4E7bXgP2DGRCk59Qy4s2I8iVnvJUmQ+Vx4iNuxVmPnb7Xl/b6Izkq9qyDSzBAg
 9q2qWZVAWbEiyUjleJmOJuLbCEIQb6f1bLWmr0+62IvWWK3Whplc5xp36BFrxJykep1r
 YQuUOmavqu5vW2rk2hj70fEdC6l4a8MG8qvLJ141douLdiC4uRNvITsnhClQzk7o18d/
 tUTOONDSzVdM3xmjr+aXhNWR3Smy9GyZ9G9uuObfHbYsZizymy4LJ0Bcmqh8I80Gq8lz
 HHxutru5RslQNfBEC7ZyxkWns9KKTygWe+3CBhzNPeVU9j+NbK9LFavuH8UQ4b9PF9d8
 ujBw==
X-Gm-Message-State: AO0yUKWBoW4xqI1+iQg5QgDzDrvjcGmOJFKECm6OWGo3hSZkrky0HYnT
 w7mg+Ejg+bK6LynIXWK8HRAEuIuEZ70=
X-Google-Smtp-Source: AK7set+Hi/eeUBc8u4vyiwLIw3EeXuYinXmfe6VABfRDuX4g437H4+ZiYBmnCq3NgmO4KTaZYdfKBw==
X-Received: by 2002:a05:600c:4751:b0:3ea:f73e:9d8a with SMTP id
 w17-20020a05600c475100b003eaf73e9d8amr25388362wmo.30.1679051837861; 
 Fri, 17 Mar 2023 04:17:17 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 u12-20020a05600c00cc00b003e6dcd562a6sm1693738wmm.28.2023.03.17.04.17.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 17 Mar 2023 04:17:17 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87fsa3ejxq.fsf@HIDDEN> (Michael Albinus's message of "Fri, 17
 Mar 2023 11:44:33 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
 <87pm98iw1e.fsf@HIDDEN> <87fsa43f36.fsf@HIDDEN>
 <87sfe4eh09.fsf@HIDDEN> <87wn3g1ssd.fsf@HIDDEN>
 <87fsa3ejxq.fsf@HIDDEN>
Date: Fri, 17 Mar 2023 11:19:16 +0000
Message-ID: <87pm97eibv.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Michael Albinus <michael.albinus@HIDDEN> writes:

>> 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.

Drats.  Reproduced.

I honestly don't know what's going on.  Yesterday I got 0% failures,
today I get 100% failures with the very same code.  Maybe there is some
SSH/ControlMaster thing at the OS level that's tainting the experiment.

FWIW, removing the JUST-THIS-ONE make Thomas' example always pass, but
it has other implications like the re-entrancy thing, which I don't
understand.

I don't have any better ideas at the moment, other than just biting the
bullet and reading Tramp's code very closely.  I'll try my hand at
adapting a process-filter into it as I described in bug#61350, but I
don't know if I'll manage of course, since I'm not closely acquainted
with the API.

Very sorry for the noise,
Jo=C3=A3o




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 17 Mar 2023 10:44:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Mar 17 06:44:44 2023
Received: from localhost ([127.0.0.1]:43770 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pd7Zk-0002zw-IR
	for submit <at> debbugs.gnu.org; Fri, 17 Mar 2023 06:44:44 -0400
Received: from mout.gmx.net ([212.227.17.20]:56239)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pd7Zi-0002zi-AM
 for 62194 <at> debbugs.gnu.org; Fri, 17 Mar 2023 06:44:43 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1679049875; i=michael.albinus@HIDDEN;
 bh=lxNXmvOBWh5aS+llLpjuJsCoYKiCAucMnAa3MYfLbdM=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=XUQoUq9oz7Pp+H17hfWTKXavJaHl24SBlp8+XDlFSJ1b6KLymms7FBf5kPlIi5x9m
 9Z/V5HyM9X2hLsdjUDXG7Kok2K/iTJR6BoxCXrjTMLmEfk9zEhBD0o2z/NVb3ms/Uo
 v5los1g2EMyCeA7KbY2RHxHJOkM0P3XEFWUFxsjUAtQ4C9G5dls/2eIoYH5o6EXqcl
 txVa0nl8BGFndOV0WhFQbqyZmJcHzS4gjaN1NqMA3ZQe6MYRzs2L5Bnb8jMSD73WSK
 +E+WPtSR2QD/AH3ALFh7sYufxs3XLDxWWimr313DBreeCVKUCEB5aYGLvjf2rmAFUB
 pSpk3NNxZ7tzA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.19]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M2O2Q-1pemGj1wD8-003xJu; Fri, 17
 Mar 2023 11:44:35 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87wn3g1ssd.fsf@HIDDEN> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?=
 =?utf-8?Q?a=22's?= message of "Thu, 16 Mar 2023 17:59:30 +0000")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
 <87pm98iw1e.fsf@HIDDEN> <87fsa43f36.fsf@HIDDEN>
 <87sfe4eh09.fsf@HIDDEN> <87wn3g1ssd.fsf@HIDDEN>
Date: Fri, 17 Mar 2023 11:44:33 +0100
Message-ID: <87fsa3ejxq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:tGacSRB3zA2kG3ViXwlYQUXcnUDWboKuxDzzB2Sa8tcGZG4otg7
 +0mmct3AzTbxEN5kpQmjBbAFCfkKwDq4KO69PV9bWZ3SoG9V9A5TgVsMuw5qcBoH4WsR/e3
 gLGQ5ZGfYXMNbykwzhR5n9aMv2+vNVTCQdLxfmlhF9Hi3bE0/56krjM7KcjGjnVnaK3XPaz
 OP/NFGY8y8E8wwYOIQQnw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:Go6YBUBsPSs=;wKpAe+8+/2RIp9vvG0rhm8z31WU
 2BVkIzjg1qIOzZf1k4d+/HN/fK8lkmeYZyZnNv68t2TXzCFPkyrwr4TIgv7DO2FtifXcZbrpq
 hHjNH8GBhmabKx8bHMMZxYfSrH4SjcGdk0QAqcuv3XZXhcMqY+TTEg8LtmnEjCmwPxp+LcTl3
 mTIZ4bnN5X9PEkIHohizwOEpBCGdmW8OMCuItu2nguUoXZ0F0rTVlKJJWX/WlL9kjFBVU8hYf
 LadT945WrSnKls0p26J+4/EX7QphAsi/6Uei1vLHn8nEh3n2ittuPEVf/o2+xD/GUSjCSC3gM
 jHSOQEDGk00+9VdjZ8FObYHm/GfxuDKthJPe6+vPD6wLRw2Hn7uo7+ZCGPFSdZSgNOnyOBtBO
 RI9W47l0D3MJjD2Xj3lqOujzjgHwgRN9wFQUDLbDnOZWOr+eDxabJ2J2RwkSlmexCI/gcuIHd
 U+lS5YfpUh9QgNKvT5EuvdQzZbYI/5pncH5R1x7XmCQRLvcVRXsLFz4D4B9aEE0aIirkU7llN
 3ibzyxGwDzwGo5HL+Ocp/neQzKjmAQ3BlcPatZAOaNhf2oKPeMMhDlWVi1gAKK9V3l1DT5f2Q
 /FHygdtn9aa0NA8An5U960Z15pxZNUZDiloHh5HpNg/DTbYzuiseUuHhl2YrfGlEulzDDz3IS
 GXo70+gJRDuDYXD+jGbHpcFK/zHDCGdrUoT70ZtffDSZl2553k8hg/cibYkgQr7tanui0DG5k
 19CSimzg0BwJOeEPZ74fdO+R1GX6K1yBrCIaPJcJ3uAsg3AtfmIAuZc/7MrhNXkxZ1SDjufNZ
 FC7pXrADQcz/fEb6bXIGAbxxGvdrXFZfJWZtm9UAlIon+ILgimTbQqR1YITDWHp7vPtFbswMf
 aRRpD0476+ESynm7olzemQ5cFKRviJSn9Uop/i+0BuE1pPubwaCmfcI2zAfIZ6uBAkPzKY1rl
 WGNfWQ==
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

Hi Jo=C3=A3o,

>> 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-handle=
r'."
  (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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 23:37:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 19:37:08 2023
Received: from localhost ([127.0.0.1]:43307 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcx9g-00020X-1A
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 19:37:08 -0400
Received: from mail-oa1-f52.google.com ([209.85.160.52]:35473)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcx9d-000201-Kf
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 19:37:06 -0400
Received: by mail-oa1-f52.google.com with SMTP id
 586e51a60fabf-177ca271cb8so4006976fac.2
 for <62194 <at> debbugs.gnu.org>; Thu, 16 Mar 2023 16:37:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1679009820;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=9NxdOAX1oOTHG8EHNqXgqZx//AhStHMVDVfmiKr7KJM=;
 b=Q/GN5eg4c7JRO8OFQJrX1eDL0Z5nlbZ10TJualK+tkSa2GLMvD0kxc0YoS39r7UDpk
 OZgne/Gm5CAj5+DWFNMdM+rXccDZOTKcs0nuKgSM1WDWEZp4fVZAqUO7oNudbhQhU+8L
 /qyhPAQ6AEAXDbEDNCdGRWBAefgMfpzgCZT1jZrmPmk2WJ14qPu4RndZMj5Hkb6WwyPo
 +CSekC0y8h7YCUpgW+aEEXbDRFbBJUpBocLhSmbJNwuFkHGZtEseYMG7wGZEZm/+ar2V
 YamOb3N5ck+yGChGRfCWNpWPh2+kKNVFuOiTCc7bgn3uqhG5X8XxtqrvkWLbuArvGyum
 gSmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1679009820;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=9NxdOAX1oOTHG8EHNqXgqZx//AhStHMVDVfmiKr7KJM=;
 b=75DbJAw1UHuIsqlP3yXDJuEz5+8mWnnt4HmcwuWPEYA+/fydRj4PWZV7p9lknxBdRi
 7WJq9W15tQG6cOtnClfF7pSAqUFlKGM8QE1NTCT+dYsDf9/OETu+l/qj0sPwwi1L40dj
 K9TZa76QD7Kk4kmdH4DaA2p8hJOTS2fdC6yzE7Pz2lq9TY33ASf4C7U8M21jo4m/uM4v
 x8ZKbFqcxEwRZmqsFOIIkfIAFyQkZJwzKy9Pocz//i0ZJzeATC2T+VKA0QxKmM1veN1F
 I6FB5vWD3enHe/jQf+w8pvLX3AV3NOAoQZ4hKrst4M2gYRbmVOD4fHtnnA1JZxok3lKf
 t+5A==
X-Gm-Message-State: AO0yUKXEIM30s1e0lllZj2Jh/SLOJHo4s9d5JeUpi1LY4lHXwDzqLlAP
 NWmPwRvQsS4eylVlRyfozsY7YwKoKmFL/fCVzBE=
X-Google-Smtp-Source: AK7set/wwALGZLoEFxTRVe1qjHGc+bfV/TYkmxYOxSvg+tcPn6RPlRuJ3OPWpmiKX4SICSKgyi/CTZwIE3T4sIzGuU4=
X-Received: by 2002:a05:6870:7729:b0:176:3897:6928 with SMTP id
 dw41-20020a056870772900b0017638976928mr18289859oab.5.1679009819943; Thu, 16
 Mar 2023 16:36:59 -0700 (PDT)
MIME-Version: 1.0
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN> <87wn3g1ssd.fsf@HIDDEN>
 <87zg8co0n0.fsf@miha-pc>
 <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
In-Reply-To: <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Thu, 16 Mar 2023 23:38:49 +0000
Message-ID: <CALDnm52H0Fv0s-W_rd-bYPdumtnovhrHJk4HKcSgG=4siXtZzA@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
To: miha@HIDDEN
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: Michael Albinus <michael.albinus@HIDDEN>, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Thu, Mar 16, 2023 at 9:57=E2=80=AFPM Jo=C3=A3o T=C3=A1vora <joaotavora@g=
mail.com> wrote:
>
>   On Thu, Mar 16, 2023 at 9:14=E2=80=AFPM <miha@HIDDEN> wrote:
> >
> > Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:
>
> > > +    (dolist (p (delq proc (process-list)))
> > > +      (when (tramp-file-name-equal-p v (process-get p 'vector))
> > > +     (while (accept-process-output p 0)))))
> >
> > I think that accept-process-output with JUST-THIS-ONE=3Dnil is dangerou=
s
> > here. We are now allowing 'file-exists-p', 'expand-file-name' and all
> > other functions listed in 'tramp-sh-file-name-handler-alist' to call an=
y
> > timer or process filter,
>
> That's exactly what we want.  We _don't_ want to stop other
> output to be inhibited from going into the filter.

Doh, this is a silly double negative.  I meant "we don't want to
inhibit other output from going into the filters".




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 21:55:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 17:55:42 2023
Received: from localhost ([127.0.0.1]:43246 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcvZW-0007q9-EW
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 17:55:42 -0400
Received: from mail-ot1-f45.google.com ([209.85.210.45]:44793)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcvZT-0007pu-Th
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 17:55:40 -0400
Received: by mail-ot1-f45.google.com with SMTP id
 w21-20020a9d6755000000b00698853a52c7so1810133otm.11
 for <62194 <at> debbugs.gnu.org>; Thu, 16 Mar 2023 14:55:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1679003734;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=LsSUNCsXYKbs/QUveWcXSN/c/T24v3Qmi68x0975DL4=;
 b=gFb2uPRTu5hBkzhuZ09pRXpv1k14EexprJmBDGmEHqUupeBEN0M7dtEqk6TtfYga4J
 V4/dUNeXPvyZFjFIN1/KoirkVQ3goq/z4+VRzy2Zl9Y0GxI8WPK8k8MWudxWzJW3uXmr
 RnD/o7kQddn9wp1I4J1FuwBn2IDYqAYAZywjcct/Yeu9dYoF/ReN6q2kH3oTw2IskVDm
 Ftxpl4B+geaIssumfhhpAgdINdVRLFPcDQQvbnqQfiXJvsGJ1Q3mpMzWQGQXuUY6DBIv
 sj8fo6Ni0it5lLLl3lD42/56QU7wxkwqKyS/CaAUc/FULcfwV7EygosW9boT46CIadQI
 rJoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1679003734;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=LsSUNCsXYKbs/QUveWcXSN/c/T24v3Qmi68x0975DL4=;
 b=U+X5PQq1dBfZ0zyWgb9yhiqyNA5cp/Qn6ac0n5Q+V7TivDima6ANH8sZZ3+8VyKvh8
 AprFmlnJPNTjlFRDwjuA6Kz1t6f4YCMJvLwDor5fUsGz/YcXpvxfrtiaerDVWhpwE9pP
 Mk8h91XqrMPMgvRrbir4JN/JOxeENFdSJHQBLNQq/6aCo5oPcHDCX2eOKy+We2RcP8Fj
 fVXHSTIE/H3nmn94VU6ccmjpJPlsfsiEbtKhE6H6yJH74lj5UHabwwJMkzSn5QbDnmfA
 b6N6ybGkECW9yr436hFrIeO592RoQrQbSrionJz/osdoEcqTcvfZHkbhrmDlr4RW8Eal
 D64A==
X-Gm-Message-State: AO0yUKUJCkPANxIi1m8019FxODgrM7gAJECgdGEYWeVEB3o2/61Cf4wy
 JzAYReK+w362KnjDw8nNV1z+PD4TGVfyVdO02aE=
X-Google-Smtp-Source: AK7set//leRsLQ4bmszgC5gzRTDmskcWWykHf+jpjACLs1XZDDjmS9tKol/KxIx6cUPbu32exsKX+ykQZVF52qEcajA=
X-Received: by 2002:a9d:5507:0:b0:699:bf77:e691 with SMTP id
 l7-20020a9d5507000000b00699bf77e691mr2719677oth.4.1679003734003; Thu, 16 Mar
 2023 14:55:34 -0700 (PDT)
MIME-Version: 1.0
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN> <87wn3g1ssd.fsf@HIDDEN>
 <87zg8co0n0.fsf@miha-pc>
In-Reply-To: <87zg8co0n0.fsf@miha-pc>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Thu, 16 Mar 2023 21:57:22 +0000
Message-ID: <CALDnm51hL3MtaneGJHqqe4RYEmkYp7sZpZrPjqYiHN7_CvN86g@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
To: miha@HIDDEN
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: Michael Albinus <michael.albinus@HIDDEN>, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

  On Thu, Mar 16, 2023 at 9:14=E2=80=AFPM <miha@HIDDEN> wrote:
>
> Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

> > +    (dolist (p (delq proc (process-list)))
> > +      (when (tramp-file-name-equal-p v (process-get p 'vector))
> > +     (while (accept-process-output p 0)))))
>
> I think that accept-process-output with JUST-THIS-ONE=3Dnil is dangerous
> here. We are now allowing 'file-exists-p', 'expand-file-name' and all
> other functions listed in 'tramp-sh-file-name-handler-alist' to call any
> timer or process filter,

That's exactly what we want.  We _don't_ want to stop other
output to be inhibited from going into the filter.  We want
to let other processes slurp their input as often as possible.

The reason it hung with JUST-THIS-ONE=3Dt is precisely the inverse
reason that it hangs without this hunk (say, in emacs-29).  One
process (say tprocess) is holding its input and jprocess can't read
it because it comes from a shared underlying SSH buffer and that
buffer is likely full (until tprocess empties it a little bit).

At the moment, it is the best we have, both theoretically and
experimentally.

> without even documenting this.

This is the most normal usage of accept-process-output.
Look at all the Emacs code base.  Basically, only Tramp uses
JUST-THIS-ONE.  It's JUST-THIS-ONE who is the aberration.
None  of the process-heavy SLIME, SLY, CIDER IDEs use it.

You can read the manual about JUST-THIS-ONE.  It's in A-O-P.

> filter may call 'read-passwd', entering a recursive edit, in which the
> user can kill any buffer or even a process. Or with midnight-mode
> enabled, a timer kills buffers older than 3 days. I consider these "the
> problem of timing errors that usually plague parallel programming", to
> quote '(elisp) Output from Processes'.

Sorry, I don't immediately see the problem.  I can't prove that there
isn't one :-) that's near impossible.  Normally what is done
is for the problem to be demonstrated with some experiment.

> I'm not saying that my proposal with SIGWINCH is flawless and I agree
> that its unacceptable. I'm just saying that we shouldn't be quite
> satisfied with this solution yet, though it should be fine for some
> time.

I'm not satisfied with it myself.  This is very slow (not that it matters
much).  But is also all around ugly.  The more correct solution is IMHO,
described in bug#61350.  But it will take time to see if it fits into
Tramp (I think it does) but most importantly how (that's the hard bit,
Tramp is a lot of code)

> What I was thinking was perhaps to introduce a function called
> 'accumulate-process-output' which would be similar to
> 'accept-process-output', except that it would only save process output

You can propose this in emacs-devel, but if you permit me to
be slightly immodest, I've been coding with
accept-process-output + filters for almost 15 years and I've never
had the need for this.  I normally want timers and other processes
to run, I don't want to stop the world.

Jo=C3=A3o




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 21:14:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 17:14:14 2023
Received: from localhost ([127.0.0.1]:43193 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcuvO-0006i3-8I
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 17:14:14 -0400
Received: from mail.kamnitnik.top ([209.250.245.214]:43672)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <miha@HIDDEN>) id 1pcuvM-0006hv-A7
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 17:14:13 -0400
From: <miha@HIDDEN>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kamnitnik.top;
 s=mail; t=1679001250;
 bh=ABWHjXI/V8LsQQy3N+foMs9IwwKdXAy/OMgF8cbjy6k=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=IBR9Dn4xuLpQLBmqIAEKful6dlP9X6C84bjvlQCEr5VuNKtAIm+FRx7WAvQ/4mjRO
 3vr4gmg2moH5oac4hOHL1+V9SIFjR4zZTEpiHtDGuK6d+TVpmlXA5mZ6DFD25ARVj5
 keG9h26zmZc48naCXMI7DdhwLznW7OtdcsEO3Bj/r2NcyECtIZzHfEwoQv3EKnDYAn
 GQsuoOZB45rwJEUXpHLpQaosg/SORCaL9bbidViXI0Urzl4Oa/3f+lRmeXnS1dfwcc
 jC/cEp6+av95SZe7Si1We+p6ZdxicgEfhJvuCm5Stl+hRwc8NwfOXz8BC7uOKUHBGq
 tngITKlaIFXlw==
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>, Michael Albinus
 <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87wn3g1ssd.fsf@HIDDEN>
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN> <87pm98iw1e.fsf@HIDDEN>
 <87fsa43f36.fsf@HIDDEN> <87sfe4eh09.fsf@HIDDEN>
 <87wn3g1ssd.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 22:18:59 +0100
Message-ID: <87zg8co0n0.fsf@miha-pc>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

> From ac334523b4a7ba23a5198ad60a97456055ffbfbd Mon Sep 17 00:00:00 2001
> From: =3D?UTF-8?q?Jo=3DC3=3DA3o=3D20T=3DC3=3DA1vora?=3D <joaotavora@gmail=
.com>
> Date: Wed, 15 Mar 2023 20:02:43 +0000
> Subject: [PATCH 3/4] A simpler fix for bug#61350, a small tweak Michael's
>  original idea.
>
> * lisp/net/tramp.el (tramp-accept-process-output): Accept process
> from related processes.
> ---
>  lisp/net/tramp.el | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
> index 47173b95bea..a7406a9d80e 100644
> --- a/lisp/net/tramp.el
> +++ b/lisp/net/tramp.el
> @@ -5800,6 +5800,11 @@ tramp-accept-process-output
>  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-han=
dler'."
> +  (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)))))

I think that accept-process-output with JUST-THIS-ONE=3Dnil is dangerous
here. We are now allowing 'file-exists-p', 'expand-file-name' and all
other functions listed in 'tramp-sh-file-name-handler-alist' to call any
timer or process filter, without even documenting this.

And even if this behaviour was documented, I don't think it is what
Elisp programmers want. It's hard to be 100% sure that calling a simple
functions such as 'expand-file-name' will work as expected in presence
of arbitrary timers or process filters. Remember that Emacs can have
pretty hardcore timers or process filters: In M-x shell, the process
filter may call 'read-passwd', entering a recursive edit, in which the
user can kill any buffer or even a process. Or with midnight-mode
enabled, a timer kills buffers older than 3 days. I consider these "the
problem of timing errors that usually plague parallel programming", to
quote '(elisp) Output from Processes'.

I'm not saying that my proposal with SIGWINCH is flawless and I agree
that its unacceptable. I'm just saying that we shouldn't be quite
satisfied with this solution yet, though it should be fine for some
time.

What I was thinking was perhaps to introduce a function called
'accumulate-process-output' which would be similar to
'accept-process-output', except that it would only save process output
on the heap without calling any process filters or timers. Subsequent
calls to 'accept-process-output', or more accurately,
wait_reading_process_output, would then first call the process filters
on the previously saved output from the heap.

This solution would probably be quite complex to implement, but having
thought about this problem for two days, I haven't come to any other
idea. If there aren't any objections or better ideas, I could start
working on it after I finally receive copyright paperwork.

>    (with-current-buffer (process-buffer proc)
>      (let ((inhibit-read-only t)
>  	  last-coding-system-used
> --=20
> 2.39.2
>

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQJHBAEBCAAxFiEEmxVnesoT5rQXvVXnswkaGpIVmT8FAmQTh8MTHG1paGFAa2Ft
bml0bmlrLnRvcAAKCRCzCRoakhWZP6KuEAC4PgMc1ezRKM1h4C9D7t+iAt9EgREL
5vBqPLOX+fj7JZ2dTcwwbn+AuVxOGTTVs+sj+VUvOl0x0O/SaGgjaAP+tOUdvqQg
OpJ5nKmhC7OL2V0gayjQTWwFHuaPa1MaqXNS98kdIdO2Yr4N/aqkg04K88EyiKka
57VIARTfREQtUMgKM/ex3SJzr4f6bPWszQ9PGRbK+F3tzbQk6sY/E7V6G/5IdqTh
DRjTbmqE4A1H3dqzwm+UUr0P9XMYkEiFgKM+iUDSFjV1oKsy2snzh53058e7ERo4
3r6ujUbj6xPDkxMxMV2C/eMuh/EafGRWQkTz95ffPIIKqJghQSsKptejj7CjlOT3
9ns2rATfhioDION1DFKsHghIuRVEV00lBBiAde/lavSaxwjBoAT2UPkavl1oLkPg
St06o+DCyrkug2inTzumTUd/t9ssNDn/iVV3LDtAni9cuUZocuQ5h35jlmjJOcWK
YsOP6PtUlSJFLXWm1hDqrqhJaFinmSVokX9cShikUjlYxMRWJlse+Y+qULqVEE4E
R91w2UKfAmMwetdyXAYcSu6gVjVxJ9g/aKfN3CfsC3ZWFrZiwdxn82K8/WZ4W6ff
CTgSB1ATOAoWOpPlDk3A6mlWWzw27HgERSdJFuLbfdjfpJeqRKUlNIy369TeSQmn
rf5cenANO0XWcA==
=1O4C
-----END PGP SIGNATURE-----
--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 17:57:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 13:57:43 2023
Received: from localhost ([127.0.0.1]:42892 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcrrC-0007hJ-1k
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 13:57:43 -0400
Received: from mail-wm1-f53.google.com ([209.85.128.53]:51714)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcrr9-0007h3-73
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 13:57:40 -0400
Received: by mail-wm1-f53.google.com with SMTP id ay8so1858990wmb.1
 for <62194 <at> debbugs.gnu.org>; Thu, 16 Mar 2023 10:57:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678989453;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=6qC8z1irwc8ep6OFa/gAeTELWF8O+r8ZCZGy7wc1yMA=;
 b=OAGG3/Ydwhd5kN2w99MxfCLRuDVkfYzIQmXbz+QYCerlMtM05c94qyaAFG4niMbgh1
 3bimk5eFVEivHB7pTEi2IvnX1zYeJPtBL0+XjO2lcblsem7GiirzmynmGZErBziN9Fzx
 WfFg5FlmIdXNo5V3JRQt7/otYdJffgczma2nzRTnkhEtD/pCJuNjeLhAwqgrEQJWoSyG
 ohqRaKPAUeUKOy13P44OBAQMALuptqfWoGk5Tx0MqzL2/s+ETHARKjjI+UJ5T8LQbOyS
 ReVg4v2p+fvzrQ5n4Vsl+IAAsYMLWp5ADN4Eky586dH0jHefBAbgTPXBaGNA9bLjxAp6
 hzOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678989453;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=6qC8z1irwc8ep6OFa/gAeTELWF8O+r8ZCZGy7wc1yMA=;
 b=FWoeVoX/cQ3MhNN1Zad1RpMrR9SDG7VP8t3YQxdt+f0PHX7bAED+SrLOhXefshQWGv
 h5uDfTa2jnG4oJR+ukl3bxw6wc1+iyNlx4UtGCaRHW7sSb9P8s0uiauqUdIqgpw7OV9K
 ZaWc5rdmMqj3wg424uY696iCIzLXina8GxDSt2jgTo+Xip78jVMmC8+weN6mZAjzR2Ho
 1KdAoy0gJy8NJjY+WPcqTbrg0HBnVdgWigSU5aChh+fLdkSJk+uc/EqcZLVZDrCVN0+/
 qhn218p/lOtMiA2eHUE0x+tUah41GJGzyYjntUEhsuVSWKfZsnGczNl9x6lEzonhNXaQ
 JsCw==
X-Gm-Message-State: AO0yUKX0N7aiMxYNjI6ScLpjUCAZYl++JOfczpj//A1DKcVD8W7WW9JY
 vbAM9fZ0uF4As1DtSxpf7NZ2vn1mnYk=
X-Google-Smtp-Source: AK7set+X/9xpuPXuw2lreAZlAjAHAkG80fh1RrkDuT2ejTbAGPXFI2VxcjsjoripImJNePEr8kzzNw==
X-Received: by 2002:a05:600c:45cd:b0:3ea:f73e:9d8d with SMTP id
 s13-20020a05600c45cd00b003eaf73e9d8dmr25384605wmo.32.1678989452860; 
 Thu, 16 Mar 2023 10:57:32 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 d22-20020a05600c34d600b003e20970175dsm5648437wmq.32.2023.03.16.10.57.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 16 Mar 2023 10:57:32 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87sfe4eh09.fsf@HIDDEN> (Michael Albinus's message of "Thu, 16
 Mar 2023 18:35:34 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
 <87pm98iw1e.fsf@HIDDEN> <87fsa43f36.fsf@HIDDEN>
 <87sfe4eh09.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 17:59:30 +0000
Message-ID: <87wn3g1ssd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Michael Albinus <michael.albinus@HIDDEN> writes:

> Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:
>
> Hi Jo=C3=A3o,
>
>>> Honestly, I'm lost with all the patches back forth and back. Could you
>>> pls show me the change you propose, based on the current master state?=
=20
>>
>> OK.  Based on the current master state, I'm sending you 4 (four
>> patches).  I known it looks a lot, but is quite simple.
>
> I've applied the 4 patches. As expected, eglot-tests, tramp-tests, and
> filenotify-tests run successfully.
>
>> * bug#61350 should be fixed -- even without the Eglot workaround.  Let
>>   me know if you need help testing this (I have a nifty dockerfile and
>>   some command-line incantations that make testing very easy).
>
> 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.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0001-Revert-Michael-Albinus-Fix-regression-in-Tramp-bug-6.patch

From a168ef267aadf2d83627806c18853a7aaf1e88ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 16 Mar 2023 12:24:29 +0000
Subject: [PATCH 1/4] Revert Michael Albinus' "Fix regression in Tramp
 (bug#62194)"

This reverts commit 0330cff65ae837e93ae4d059acf643734d16386d.
---
 lisp/net/tramp-sh.el | 6 +++---
 lisp/net/tramp.el    | 3 +--
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 2f990af334d..882b79b3ee7 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2427,7 +2427,7 @@ tramp-do-copy-or-rename-file-out-of-band
 		;; This is neded for ssh or PuTTY based processes, and
 		;; only if the respective options are set.  Perhaps,
 		;; the setting could be more fine-grained.
-		;; (process-put p 'shared-socket t)
+		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 
@@ -3760,7 +3760,7 @@ tramp-sh-handle-file-notify-add-watch
 	;; This is neded for ssh or PuTTY based processes, and only if
 	;; the respective options are set.  Perhaps, the setting could
 	;; be more fine-grained.
-	;; (process-put p 'shared-socket t)
+	(process-put p 'shared-socket t)
 	;; Needed for process filter.
 	(process-put p 'events events)
 	(process-put p 'watch-name localname)
@@ -5124,7 +5124,7 @@ tramp-maybe-open-connection
 		;; This is neded for ssh or PuTTY based processes, and
 		;; only if the respective options are set.  Perhaps,
 		;; the setting could be more fine-grained.
-		;; (process-put p 'shared-socket t)
+		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 		(setq tramp-current-connection (cons vec (current-time)))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 0c8f8acc07d..b6e985db6b1 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5091,7 +5091,7 @@ tramp-handle-make-process
 	    ;; This is neded for ssh or PuTTY based processes, and
 	    ;; only if the respective options are set.  Perhaps, the
 	    ;; setting could be more fine-grained.
-	    ;; (process-put p 'shared-socket t)
+	    (process-put p 'shared-socket t)
 	    (process-put p 'remote-command orig-command)
 	    (tramp-set-connection-property p "remote-command" orig-command)
 
@@ -5809,7 +5809,6 @@ tramp-accept-process-output
   ;; There could be other processes which use the same socket for
   ;; communication.  This could block the output for the current
   ;; process.  Read such output first.  (Bug#61350)
-  ;; The process property isn't set anymore due to Bug#62194.
   (when-let (((process-get proc 'shared-socket))
 	     (v (process-get proc 'vector)))
     (dolist (p (delq proc (process-list)))
-- 
2.39.2


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0002-Revert-Michael-Albinus-Improve-Tramp-processes-to-ac.patch

From 14e37318dd5f170771fb1a74d69e89d5e756d1cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 16 Mar 2023 12:26:04 +0000
Subject: [PATCH 2/4] Revert Michael Albinus' "Improve Tramp processes to
 accept..."

It was found to cause the failure of test
file-notify-test04-autorevert-remote, among other instabilities.

This reverts commit 54ef338ba3670415cf47fabc33a92d4904707c7e.
---
 lisp/net/tramp-adb.el      |  2 +-
 lisp/net/tramp-gvfs.el     |  2 +-
 lisp/net/tramp-sh.el       | 14 +-------------
 lisp/net/tramp-smb.el      |  6 +++---
 lisp/net/tramp-sudoedit.el |  2 +-
 lisp/net/tramp.el          | 33 +++++++++------------------------
 6 files changed, 16 insertions(+), 43 deletions(-)

diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index d338201ab72..64f45e7958d 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -990,7 +990,7 @@ tramp-adb-handle-make-process
 				  (progn
 				    (goto-char (point-min))
 				    (not (search-forward "\n" nil t)))
-			        (tramp-accept-process-output p))
+			        (tramp-accept-process-output p 0))
 			      (delete-region (point-min) (point)))
 			    ;; Provide error buffer.  This shows only
 			    ;; initial error messages; messages
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index c1ad37de1d2..266724c587f 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1469,7 +1469,7 @@ tramp-gvfs-handle-file-notify-add-watch
 	(set-process-sentinel p #'tramp-file-notify-process-sentinel)
 	;; There might be an error if the monitor is not supported.
 	;; Give the filter a chance to read the output.
-	(while (tramp-accept-process-output p))
+	(while (tramp-accept-process-output p 0))
 	(unless (process-live-p p)
 	  (tramp-error
 	   p 'file-notify-error "Monitoring not supported for `%s'" file-name))
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 882b79b3ee7..48ebfff6cfe 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2424,10 +2424,6 @@ tramp-do-copy-or-rename-file-out-of-band
 		      copy-program copy-args)))
 		(tramp-message v 6 "%s" (string-join (process-command p) " "))
 		(process-put p 'vector v)
-		;; This is neded for ssh or PuTTY based processes, and
-		;; only if the respective options are set.  Perhaps,
-		;; the setting could be more fine-grained.
-		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 
@@ -3757,10 +3753,6 @@ tramp-sh-handle-file-notify-add-watch
 	   (string-join sequence " "))
 	(tramp-message v 6 "Run `%s', %S" (string-join sequence " ") p)
 	(process-put p 'vector v)
-	;; This is neded for ssh or PuTTY based processes, and only if
-	;; the respective options are set.  Perhaps, the setting could
-	;; be more fine-grained.
-	(process-put p 'shared-socket t)
 	;; Needed for process filter.
 	(process-put p 'events events)
 	(process-put p 'watch-name localname)
@@ -3769,7 +3761,7 @@ tramp-sh-handle-file-notify-add-watch
 	(set-process-sentinel p #'tramp-file-notify-process-sentinel)
 	;; There might be an error if the monitor is not supported.
 	;; Give the filter a chance to read the output.
-	(while (tramp-accept-process-output p))
+	(while (tramp-accept-process-output p 0))
 	(unless (process-live-p p)
 	  (tramp-error
 	   p 'file-notify-error "Monitoring not supported for `%s'" file-name))
@@ -5121,10 +5113,6 @@ tramp-maybe-open-connection
 		;; Set sentinel and query flag.  Initialize variables.
 		(set-process-sentinel p #'tramp-process-sentinel)
 		(process-put p 'vector vec)
-		;; This is neded for ssh or PuTTY based processes, and
-		;; only if the respective options are set.  Perhaps,
-		;; the setting could be more fine-grained.
-		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 		(setq tramp-current-connection (cons vec (current-time)))
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index bb4ab9e3057..1aa4520eeb6 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -757,7 +757,7 @@ tramp-smb-action-get-acl
   "Read ACL data from connection buffer."
   (unless (process-live-p proc)
     ;; Accept pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (with-current-buffer (tramp-get-connection-buffer vec)
       ;; There might be a hidden password prompt.
       (widen)
@@ -1363,7 +1363,7 @@ tramp-smb-action-set-acl
   "Set ACL data."
   (unless (process-live-p proc)
     ;; Accept pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (tramp-message
      vec 10 "\n%s" (tramp-get-buffer-string (tramp-get-connection-buffer vec)))
     (throw 'tramp-action 'ok)))
@@ -2023,7 +2023,7 @@ tramp-smb-wait-for-output
 
       ;; Read pending output.
       (while (not (re-search-forward tramp-smb-prompt nil t))
-	(while (tramp-accept-process-output p))
+	(while (tramp-accept-process-output p 0))
 	(goto-char (point-min)))
       (tramp-message vec 6 "\n%s" (buffer-string))
 
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el
index 3cacde2468c..abb9afc570b 100644
--- a/lisp/net/tramp-sudoedit.el
+++ b/lisp/net/tramp-sudoedit.el
@@ -692,7 +692,7 @@ tramp-sudoedit-action-sudo
   "Check, whether a sudo process has finished.  Remove unneeded output."
   ;; There might be pending output for the exit status.
   (unless (process-live-p proc)
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     ;; Delete narrowed region, it would be in the way reading a Lisp form.
     (goto-char (point-min))
     (widen)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index b6e985db6b1..47173b95bea 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5087,11 +5087,6 @@ tramp-handle-make-process
 	    ;; t.  See Bug#51177.
 	    (when filter
 	      (set-process-filter p filter))
-	    (process-put p 'vector v)
-	    ;; This is neded for ssh or PuTTY based processes, and
-	    ;; only if the respective options are set.  Perhaps, the
-	    ;; setting could be more fine-grained.
-	    (process-put p 'shared-socket t)
 	    (process-put p 'remote-command orig-command)
 	    (tramp-set-connection-property p "remote-command" orig-command)
 
@@ -5494,7 +5489,7 @@ tramp-handle-file-notify-rm-watch
   ;; There might be pending output.  Avoid problems with reentrant
   ;; call of Tramp.
   (ignore-errors
-    (while (tramp-accept-process-output proc)))
+    (while (tramp-accept-process-output proc 0)))
   (tramp-message proc 6 "Kill %S" proc)
   (delete-process proc))
 
@@ -5646,13 +5641,13 @@ tramp-action-process-alive
   "Check, whether a process has finished."
   (unless (process-live-p proc)
     ;; There might be pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (throw 'tramp-action 'process-died)))
 
 (defun tramp-action-out-of-band (proc vec)
   "Check, whether an out-of-band copy has finished."
   ;; There might be pending output for the exit status.
-  (while (tramp-accept-process-output proc))
+  (while (tramp-accept-process-output proc 0))
   (cond ((and (not (process-live-p proc))
 	      (zerop (process-exit-status proc)))
 	 (tramp-message	vec 3 "Process has finished.")
@@ -5683,7 +5678,7 @@ tramp-process-one-action
     (while (not found)
       ;; Reread output once all actions have been performed.
       ;; Obviously, the output was not complete.
-      (while (tramp-accept-process-output proc))
+      (while (tramp-accept-process-output proc 0))
       (setq todo actions)
       (while todo
 	(setq item (pop todo)
@@ -5800,21 +5795,11 @@ with-tramp-locked-connection
 	   ,@body)
        (tramp-flush-connection-property ,proc "locked"))))
 
-(defun tramp-accept-process-output (proc &optional _timeout)
+(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'."
-  (declare (advertised-calling-convention (proc) "29.2"))
-  ;; There could be other processes which use the same socket for
-  ;; communication.  This could block the output for the current
-  ;; process.  Read such output first.  (Bug#61350)
-  (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))
-	(accept-process-output p 0 nil t))))
-
   (with-current-buffer (process-buffer proc)
     (let ((inhibit-read-only t)
 	  last-coding-system-used
@@ -5824,10 +5809,10 @@ tramp-accept-process-output
 	;; 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 0 nil t)) t)
+	      (setq result (accept-process-output proc timeout nil t)) t)
 	    (tramp-message
-	     proc 10 "%s %s %s\n%s"
-	     proc (process-status proc) result (buffer-string))
+	     proc 10 "%s %s %s %s\n%s"
+	     proc timeout (process-status proc) result (buffer-string))
 	  ;; Propagate quit.
 	  (keyboard-quit)))
       result)))
@@ -6840,7 +6825,7 @@ tramp-interrupt-process
                  (tramp-get-remote-null-device (process-get proc 'vector))))
 	;; Wait, until the process has disappeared.  If it doesn't,
 	;; fall back to the default implementation.
-        (while (tramp-accept-process-output proc))
+        (while (tramp-accept-process-output proc 0))
 	(not (process-live-p proc))))))
 
 (add-hook 'interrupt-process-functions #'tramp-interrupt-process)
-- 
2.39.2


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0003-A-simpler-fix-for-bug-61350-a-small-tweak-Michael-s-.patch

From ac334523b4a7ba23a5198ad60a97456055ffbfbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Wed, 15 Mar 2023 20:02:43 +0000
Subject: [PATCH 3/4] A simpler fix for bug#61350, a small tweak Michael's
 original idea.

* lisp/net/tramp.el (tramp-accept-process-output): Accept process
from related processes.
---
 lisp/net/tramp.el | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 47173b95bea..a7406a9d80e 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5800,6 +5800,11 @@ tramp-accept-process-output
 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
-- 
2.39.2


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0004-Just-for-testing-Remove-Tramp-specific-workaround-in.patch

From 566a4de4bd5c39f35a5fce245bc722ee23590ded Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Wed, 15 Mar 2023 19:52:34 +0000
Subject: [PATCH 4/4] Just for testing: Remove Tramp-specific workaround in
 Eglot

* lisp/progmodes/eglot.el (eglot--connect): No longer bind tramp vars.
(tramp-ssh-controlmaster-options)
(tramp-use-ssh-controlmaster-options): Remove.
---
 lisp/progmodes/eglot.el | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 6c1b9eafe43..f96f7dd254f 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -130,8 +130,6 @@
 (defvar markdown-fontify-code-blocks-natively)
 (defvar company-backends)
 (defvar company-tooltip-align-annotations)
-(defvar tramp-ssh-controlmaster-options)
-(defvar tramp-use-ssh-controlmaster-options)
 
 
 ;;; User tweakable stuff
@@ -1251,15 +1249,7 @@ eglot--connect
                         (contact (cl-subseq contact 0 probe)))
                    `(:process
                      ,(lambda ()
-                        (let ((default-directory default-directory)
-                              ;; bug#61350: Tramp turns on a feature
-                              ;; by default that can't (yet) handle
-                              ;; very much data so we turn it off
-                              ;; unconditionally -- just for our
-                              ;; process.
-                              (tramp-use-ssh-controlmaster-options t)
-                              (tramp-ssh-controlmaster-options
-                               "-o ControlMaster=no -o ControlPath=none"))
+                        (let ((default-directory default-directory))
                           (make-process
                            :name readable-name
                            :command (setq server-info (eglot--cmd contact))
-- 
2.39.2


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 17:35:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 13:35:45 2023
Received: from localhost ([127.0.0.1]:42858 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcrVx-00075B-4f
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 13:35:45 -0400
Received: from mout.gmx.net ([212.227.15.18]:35981)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pcrVu-00074x-JY
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 13:35:43 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1678988135; i=michael.albinus@HIDDEN;
 bh=BTOfVhMZAZiyWlYQ8qdpueiGR+JPziQNGUj3IOJwmac=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=JF0toN3FcX0KdYChOxGj8vfvPBSDGA/ZMGXZHQNwjZ7DbBKZv3CpK/w7oZaKpKLlV
 4kQrLrSAziiREm+CRH0lqM+4PK/D6S+Dm4KIkG9W+KEwJSblyjRT+olI2fprW03X/S
 vMLgImuaqn0b/EU5JKkW6VeN9iTJ1EuEVzR9ggckXE0zcZPWwsV/Yhks1ytp52A8bn
 XEYLYb7JX/Y45/0zM35LOf3DHRSQRcHTIh1n3D2csz+vRXw7jWx6MCOH4ZeIVyRvyo
 pkBpRYjRh+AgIkfQKpH+gnveFJEcE2uirnfiBOO2kS1+8/Kn1TDasehyTar4xD2CoL
 CXkw0m52QgBTA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.19]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MVN6j-1q3VAG3KsR-00SP8E; Thu, 16
 Mar 2023 18:35:35 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87fsa43f36.fsf@HIDDEN> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?=
 =?utf-8?Q?a=22's?= message of "Thu, 16 Mar 2023 15:12:29 +0000")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
 <87pm98iw1e.fsf@HIDDEN> <87fsa43f36.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 18:35:34 +0100
Message-ID: <87sfe4eh09.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:vh6muB/4vLwHJAkuTXFtNDE8SsMRSH4yCLtNdg/5HYuxDOERKoW
 iEPtJBgaCp9C8mA8xNqls88WIhBLr297nk0ylNjaplFp0tHkRHe62ZEGDomZsFBPRPj8Vo4
 yYnzx1mQHBu9LU/PM0vkb6QJ8FeTscPiSgNIEV2gXkHm5A766KvdI6xEhZIJSo5oH2qoBFL
 PSYwYtDqORhYFQz1z0H2w==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:UbnWKX67GDo=;EjcmjYfA+a90kU4agMTpDFtI0i1
 NCmUKj3DyEXQ5PxQzBjAgOL0Y6HNW22bl7wpRUx0i6S6SQkyKYJvQNXdANWCahT1Cb8weiY56
 vY+jq4pHsgkofxfeSHdKqGIgdV2fCEU67sweiRdS7CZDU9c3037Y4oLqanCFsI7hXtv+cNaKz
 BHjcBvKJ1rGAJp1yl6AZD7G3YwaFHPVHEAIIAaHJjRX36cHOyvDb4xkdHWsgep3BL7PU3n7iP
 Vpl10FH7SKBuFNODhv+ebKTzDLJkc3TUW5Tfa1tGrn+oyPY0TZzUUMUUgfiyhnLHo8nqZi4II
 GnDepBMBSwBTjTCVfi2rD7JhrBkMJyb92tFCyAgwy/nQUvsPPnI8etlnb53P/zC9IwMq1PXso
 r27J7qKU51RKK8kF59edogtcLZjVb1DR5SGWV+yUDiwYcUN93I/2OAD6/NdyH9y0I3Fl1EgIk
 lhWkGfDtlKpJdsNST9rqcPtqYEC1RUoGlWjoA8oUlfmYrqAdaU7Tx1nDO0Jod77FaTTXmvvtk
 0b3Cg2y0FZxMC7DRyJ1Qs+RFmecEd+jKJUWA8iM18SiSzYE53cl1Qh4leyu+e1u71LF8sh22R
 ppCOq6u5tMAgD1bk9dKJRmMB5EPikOai5a3uAYQnrLkeBNAOBmNU0TrS4HdVJNY1JuYOoYcf/
 iJg3bh3am+kXcCpgTp6rOFPgY7JuTtsvmt8hNJo8uQVbxDZPayUt6mC1KJ2iv9ZA94sesijof
 KKYvstU0jbiPfAmYa8QY8hY9dok22tD2icpOLhzSRwucYEK5TJeL/XXXreJqt9BTViQHheYCv
 qRFRxdBIH+YdyGcpklOUSWKiXZJ8E3dPpXRvsVKZ+4aSns1gFF7Mnwl49Kz/teVjnlDEQuTi6
 lwIdyf90EGnKgJ+COziEqhs8d3kHhYYPu7eQvYA/47Wj0FujPLyme1MAAgpYmHUPx+i7WmjO+
 eRgTG9FWjLHMHeNRD5qMRUdZlV0=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

Hi Jo=C3=A3o,

>> Honestly, I'm lost with all the patches back forth and back. Could you
>> pls show me the change you propose, based on the current master state?=20
>
> OK.  Based on the current master state, I'm sending you 4 (four
> patches).  I known it looks a lot, but is quite simple.

I've applied the 4 patches. As expected, eglot-tests, tramp-tests, and
filenotify-tests run successfully.

> * bug#61350 should be fixed -- even without the Eglot workaround.  Let
>   me know if you need help testing this (I have a nifty dockerfile and
>   some command-line incantations that make testing very easy).

The example given by Thomas blocks, again. So we are back to the
beginning, aren't we?

> Jo=C3=A3o

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 15:10:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 11:10:42 2023
Received: from localhost ([127.0.0.1]:42768 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcpFZ-0002kA-5g
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 11:10:42 -0400
Received: from mail-wm1-f42.google.com ([209.85.128.42]:40712)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcpFV-0002jw-Ta
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 11:10:39 -0400
Received: by mail-wm1-f42.google.com with SMTP id
 fm20-20020a05600c0c1400b003ead37e6588so3379969wmb.5
 for <62194 <at> debbugs.gnu.org>; Thu, 16 Mar 2023 08:10:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678979431;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=VGdHzisShoGfw9/HuBRmTiDH4/1VtsQApHlc6smzcsI=;
 b=JmdWYAq86DcXT5sr4qJA+rbbhdmJzPgfwuWMbIoB3tVgjB6ShivHykK5yfQgX/qxF0
 Wer5iATGtNYTgyLBF84z1zd2aRcP9eUgMvnePcRNMw1MBFz9mJHZbvBbkKn1NMIZoQJ5
 GeF9YjQ7nvufFlPoMxSbWf8MTlssTUAht3lmQ87f6eF/zFJnf+ghDMTwVuBqgJ+M3BMV
 YVFcgZc1pbCmLf+s9Kzplr2tEhSEuyXOtCNsRcYkIewE37qvBOQWjFyvx2LJEqxeWBA0
 ZkFjnv/QKMYmfr0wum5hZFnK4ksuCap/lEFeRsDBuEU6bcnbaDMYUtD0TUBBPo/H/s7y
 1DEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678979431;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=VGdHzisShoGfw9/HuBRmTiDH4/1VtsQApHlc6smzcsI=;
 b=Vv4YgfOUWHk7wU0WPWZ90VB3OAQlm6dHOMlgI6TWsx9o9SzTIb8G4DEAmb5SneEDEA
 8DsrbLMhXsccTl7FHJ/FpRrFH6d73U6QuJ2sa/FxVEvXg8d154xAg0JbFmzJSQ2wudZL
 s3CKl9Nh3cnLoW23K7Yncr1ThqMzCN4bOj+l0Lqbfo/TCvx2/8rUixsvj5G6AZz2gPxk
 jCi2myKCOrRRxejIWTR20PQgrJtie64r1zH5L0XImN/Ob1S2WmOcsF+ZYYlASGI8xswJ
 JhxsVdSVjDxhQ8wpLIiXJl4RNWzCxXKxGF+u/gXBS+DJ4d/kooc/5ldZXWumMitkPcWU
 Vo2A==
X-Gm-Message-State: AO0yUKV2w6JIGDHX33QOoj2Fzw1vFIPSlXitu/UtdmTStHV66wOwIuiz
 QZEWpx8ejaNqf9cf0Uudqtbv0QGAX4A=
X-Google-Smtp-Source: AK7set/YKFf+icBTrjZYtghPTMEagaOP2NGmbfKDMWSx8pp7SzeoW2U7SDpuxLf8dSgM2t10E5lP5g==
X-Received: by 2002:a05:600c:5028:b0:3eb:a4e:a2b2 with SMTP id
 n40-20020a05600c502800b003eb0a4ea2b2mr21316165wmr.4.1678979431244; 
 Thu, 16 Mar 2023 08:10:31 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 p8-20020a7bcc88000000b003e22508a343sm5161442wma.12.2023.03.16.08.10.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 16 Mar 2023 08:10:30 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87pm98iw1e.fsf@HIDDEN> (Michael Albinus's message of "Thu, 16
 Mar 2023 15:57:17 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
 <87pm98iw1e.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 15:12:29 +0000
Message-ID: <87fsa43f36.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Michael Albinus <michael.albinus@HIDDEN> writes:

> Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:
>
> Hi Jo=C3=A3o,
>
>> Michael, now you've brought back the Eglot/Tramp hang of bug#61350!
>>
>> Really Michael, please consider reverting 0330cff65ae (your latest) and
>> 54ef338ba36 (from two days ago), and going back to the simpler version
>> that you originally proposed, with just the 'while' added there.
>
> Honestly, I'm lost with all the patches back forth and back. Could you
> pls show me the change you propose, based on the current master state?=20

OK.  Based on the current master state, I'm sending you 4 (four
patches).  I known it looks a lot, but is quite simple.

'0001-Revert-Michael-Albinus-Fix-regression-in-Tramp-bug-6.patch'

   Reverts your latest commit 0330cff65ae, where some settings of
   'shared-socket' are commented out.

'0002-Revert-Michael-Albinus-Improve-Tramp-processes-to-ac.patch'

   Reverts 54ef338ba36 from two days ago, for all purposes restoring the
   state of Tramp to what is in emacs-29.

'0003-A-simpler-fix-for-bug-61350-a-small-tweak-Michael-s-.patch'

   This is the simpler patch that adds the (while
   (accept-process-output)).  It is directly based on your first idea.
   It keeps the timeout.  It is the most conservative patch.

'0004-Just-for-testing-Remove-Tramp-specific-workaround-in.patch'

   This removes the Tramp-specific Eglot workaround.

   It's good for testing the original hang reporting in bug#61350

After you have applied these four patches, the following should happen:

* Tramp tests should have the same pass rate in master as in emacs-29

* bug#61350 should be fixed -- even without the Eglot workaround.  Let
  me know if you need help testing this (I have a nifty dockerfile and
  some command-line incantations that make testing very easy).

Jo=C3=A3o


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0001-Revert-Michael-Albinus-Fix-regression-in-Tramp-bug-6.patch

From a168ef267aadf2d83627806c18853a7aaf1e88ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 16 Mar 2023 12:24:29 +0000
Subject: [PATCH 1/4] Revert Michael Albinus' "Fix regression in Tramp
 (bug#62194)"

This reverts commit 0330cff65ae837e93ae4d059acf643734d16386d.
---
 lisp/net/tramp-sh.el | 6 +++---
 lisp/net/tramp.el    | 3 +--
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 2f990af334d..882b79b3ee7 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2427,7 +2427,7 @@ tramp-do-copy-or-rename-file-out-of-band
 		;; This is neded for ssh or PuTTY based processes, and
 		;; only if the respective options are set.  Perhaps,
 		;; the setting could be more fine-grained.
-		;; (process-put p 'shared-socket t)
+		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 
@@ -3760,7 +3760,7 @@ tramp-sh-handle-file-notify-add-watch
 	;; This is neded for ssh or PuTTY based processes, and only if
 	;; the respective options are set.  Perhaps, the setting could
 	;; be more fine-grained.
-	;; (process-put p 'shared-socket t)
+	(process-put p 'shared-socket t)
 	;; Needed for process filter.
 	(process-put p 'events events)
 	(process-put p 'watch-name localname)
@@ -5124,7 +5124,7 @@ tramp-maybe-open-connection
 		;; This is neded for ssh or PuTTY based processes, and
 		;; only if the respective options are set.  Perhaps,
 		;; the setting could be more fine-grained.
-		;; (process-put p 'shared-socket t)
+		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 		(setq tramp-current-connection (cons vec (current-time)))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 0c8f8acc07d..b6e985db6b1 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5091,7 +5091,7 @@ tramp-handle-make-process
 	    ;; This is neded for ssh or PuTTY based processes, and
 	    ;; only if the respective options are set.  Perhaps, the
 	    ;; setting could be more fine-grained.
-	    ;; (process-put p 'shared-socket t)
+	    (process-put p 'shared-socket t)
 	    (process-put p 'remote-command orig-command)
 	    (tramp-set-connection-property p "remote-command" orig-command)
 
@@ -5809,7 +5809,6 @@ tramp-accept-process-output
   ;; There could be other processes which use the same socket for
   ;; communication.  This could block the output for the current
   ;; process.  Read such output first.  (Bug#61350)
-  ;; The process property isn't set anymore due to Bug#62194.
   (when-let (((process-get proc 'shared-socket))
 	     (v (process-get proc 'vector)))
     (dolist (p (delq proc (process-list)))
-- 
2.39.2


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0002-Revert-Michael-Albinus-Improve-Tramp-processes-to-ac.patch

From 14e37318dd5f170771fb1a74d69e89d5e756d1cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Thu, 16 Mar 2023 12:26:04 +0000
Subject: [PATCH 2/4] Revert Michael Albinus' "Improve Tramp processes to
 accept..."

It was found to cause the failure of test
file-notify-test04-autorevert-remote, among other instabilities.

This reverts commit 54ef338ba3670415cf47fabc33a92d4904707c7e.
---
 lisp/net/tramp-adb.el      |  2 +-
 lisp/net/tramp-gvfs.el     |  2 +-
 lisp/net/tramp-sh.el       | 14 +-------------
 lisp/net/tramp-smb.el      |  6 +++---
 lisp/net/tramp-sudoedit.el |  2 +-
 lisp/net/tramp.el          | 33 +++++++++------------------------
 6 files changed, 16 insertions(+), 43 deletions(-)

diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index d338201ab72..64f45e7958d 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -990,7 +990,7 @@ tramp-adb-handle-make-process
 				  (progn
 				    (goto-char (point-min))
 				    (not (search-forward "\n" nil t)))
-			        (tramp-accept-process-output p))
+			        (tramp-accept-process-output p 0))
 			      (delete-region (point-min) (point)))
 			    ;; Provide error buffer.  This shows only
 			    ;; initial error messages; messages
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index c1ad37de1d2..266724c587f 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1469,7 +1469,7 @@ tramp-gvfs-handle-file-notify-add-watch
 	(set-process-sentinel p #'tramp-file-notify-process-sentinel)
 	;; There might be an error if the monitor is not supported.
 	;; Give the filter a chance to read the output.
-	(while (tramp-accept-process-output p))
+	(while (tramp-accept-process-output p 0))
 	(unless (process-live-p p)
 	  (tramp-error
 	   p 'file-notify-error "Monitoring not supported for `%s'" file-name))
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 882b79b3ee7..48ebfff6cfe 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2424,10 +2424,6 @@ tramp-do-copy-or-rename-file-out-of-band
 		      copy-program copy-args)))
 		(tramp-message v 6 "%s" (string-join (process-command p) " "))
 		(process-put p 'vector v)
-		;; This is neded for ssh or PuTTY based processes, and
-		;; only if the respective options are set.  Perhaps,
-		;; the setting could be more fine-grained.
-		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 
@@ -3757,10 +3753,6 @@ tramp-sh-handle-file-notify-add-watch
 	   (string-join sequence " "))
 	(tramp-message v 6 "Run `%s', %S" (string-join sequence " ") p)
 	(process-put p 'vector v)
-	;; This is neded for ssh or PuTTY based processes, and only if
-	;; the respective options are set.  Perhaps, the setting could
-	;; be more fine-grained.
-	(process-put p 'shared-socket t)
 	;; Needed for process filter.
 	(process-put p 'events events)
 	(process-put p 'watch-name localname)
@@ -3769,7 +3761,7 @@ tramp-sh-handle-file-notify-add-watch
 	(set-process-sentinel p #'tramp-file-notify-process-sentinel)
 	;; There might be an error if the monitor is not supported.
 	;; Give the filter a chance to read the output.
-	(while (tramp-accept-process-output p))
+	(while (tramp-accept-process-output p 0))
 	(unless (process-live-p p)
 	  (tramp-error
 	   p 'file-notify-error "Monitoring not supported for `%s'" file-name))
@@ -5121,10 +5113,6 @@ tramp-maybe-open-connection
 		;; Set sentinel and query flag.  Initialize variables.
 		(set-process-sentinel p #'tramp-process-sentinel)
 		(process-put p 'vector vec)
-		;; This is neded for ssh or PuTTY based processes, and
-		;; only if the respective options are set.  Perhaps,
-		;; the setting could be more fine-grained.
-		(process-put p 'shared-socket t)
 		(process-put p 'adjust-window-size-function #'ignore)
 		(set-process-query-on-exit-flag p nil)
 		(setq tramp-current-connection (cons vec (current-time)))
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index bb4ab9e3057..1aa4520eeb6 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -757,7 +757,7 @@ tramp-smb-action-get-acl
   "Read ACL data from connection buffer."
   (unless (process-live-p proc)
     ;; Accept pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (with-current-buffer (tramp-get-connection-buffer vec)
       ;; There might be a hidden password prompt.
       (widen)
@@ -1363,7 +1363,7 @@ tramp-smb-action-set-acl
   "Set ACL data."
   (unless (process-live-p proc)
     ;; Accept pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (tramp-message
      vec 10 "\n%s" (tramp-get-buffer-string (tramp-get-connection-buffer vec)))
     (throw 'tramp-action 'ok)))
@@ -2023,7 +2023,7 @@ tramp-smb-wait-for-output
 
       ;; Read pending output.
       (while (not (re-search-forward tramp-smb-prompt nil t))
-	(while (tramp-accept-process-output p))
+	(while (tramp-accept-process-output p 0))
 	(goto-char (point-min)))
       (tramp-message vec 6 "\n%s" (buffer-string))
 
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el
index 3cacde2468c..abb9afc570b 100644
--- a/lisp/net/tramp-sudoedit.el
+++ b/lisp/net/tramp-sudoedit.el
@@ -692,7 +692,7 @@ tramp-sudoedit-action-sudo
   "Check, whether a sudo process has finished.  Remove unneeded output."
   ;; There might be pending output for the exit status.
   (unless (process-live-p proc)
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     ;; Delete narrowed region, it would be in the way reading a Lisp form.
     (goto-char (point-min))
     (widen)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index b6e985db6b1..47173b95bea 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5087,11 +5087,6 @@ tramp-handle-make-process
 	    ;; t.  See Bug#51177.
 	    (when filter
 	      (set-process-filter p filter))
-	    (process-put p 'vector v)
-	    ;; This is neded for ssh or PuTTY based processes, and
-	    ;; only if the respective options are set.  Perhaps, the
-	    ;; setting could be more fine-grained.
-	    (process-put p 'shared-socket t)
 	    (process-put p 'remote-command orig-command)
 	    (tramp-set-connection-property p "remote-command" orig-command)
 
@@ -5494,7 +5489,7 @@ tramp-handle-file-notify-rm-watch
   ;; There might be pending output.  Avoid problems with reentrant
   ;; call of Tramp.
   (ignore-errors
-    (while (tramp-accept-process-output proc)))
+    (while (tramp-accept-process-output proc 0)))
   (tramp-message proc 6 "Kill %S" proc)
   (delete-process proc))
 
@@ -5646,13 +5641,13 @@ tramp-action-process-alive
   "Check, whether a process has finished."
   (unless (process-live-p proc)
     ;; There might be pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (throw 'tramp-action 'process-died)))
 
 (defun tramp-action-out-of-band (proc vec)
   "Check, whether an out-of-band copy has finished."
   ;; There might be pending output for the exit status.
-  (while (tramp-accept-process-output proc))
+  (while (tramp-accept-process-output proc 0))
   (cond ((and (not (process-live-p proc))
 	      (zerop (process-exit-status proc)))
 	 (tramp-message	vec 3 "Process has finished.")
@@ -5683,7 +5678,7 @@ tramp-process-one-action
     (while (not found)
       ;; Reread output once all actions have been performed.
       ;; Obviously, the output was not complete.
-      (while (tramp-accept-process-output proc))
+      (while (tramp-accept-process-output proc 0))
       (setq todo actions)
       (while todo
 	(setq item (pop todo)
@@ -5800,21 +5795,11 @@ with-tramp-locked-connection
 	   ,@body)
        (tramp-flush-connection-property ,proc "locked"))))
 
-(defun tramp-accept-process-output (proc &optional _timeout)
+(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'."
-  (declare (advertised-calling-convention (proc) "29.2"))
-  ;; There could be other processes which use the same socket for
-  ;; communication.  This could block the output for the current
-  ;; process.  Read such output first.  (Bug#61350)
-  (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))
-	(accept-process-output p 0 nil t))))
-
   (with-current-buffer (process-buffer proc)
     (let ((inhibit-read-only t)
 	  last-coding-system-used
@@ -5824,10 +5809,10 @@ tramp-accept-process-output
 	;; 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 0 nil t)) t)
+	      (setq result (accept-process-output proc timeout nil t)) t)
 	    (tramp-message
-	     proc 10 "%s %s %s\n%s"
-	     proc (process-status proc) result (buffer-string))
+	     proc 10 "%s %s %s %s\n%s"
+	     proc timeout (process-status proc) result (buffer-string))
 	  ;; Propagate quit.
 	  (keyboard-quit)))
       result)))
@@ -6840,7 +6825,7 @@ tramp-interrupt-process
                  (tramp-get-remote-null-device (process-get proc 'vector))))
 	;; Wait, until the process has disappeared.  If it doesn't,
 	;; fall back to the default implementation.
-        (while (tramp-accept-process-output proc))
+        (while (tramp-accept-process-output proc 0))
 	(not (process-live-p proc))))))
 
 (add-hook 'interrupt-process-functions #'tramp-interrupt-process)
-- 
2.39.2


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0003-A-simpler-fix-for-bug-61350-a-small-tweak-Michael-s-.patch

From 08f32d4026bcd657c78d147e61af467d88e12748 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Wed, 15 Mar 2023 20:02:43 +0000
Subject: [PATCH 3/4] A simpler fix for bug#61350, a small tweak Michael's
 original idea.

* lisp/net/tramp.el (tramp-accept-process-output): Accept process
from related processes.
---
 lisp/net/tramp.el | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 47173b95bea..885b29f9471 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5800,6 +5800,11 @@ tramp-accept-process-output
 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 nil t)))))
   (with-current-buffer (process-buffer proc)
     (let ((inhibit-read-only t)
 	  last-coding-system-used
-- 
2.39.2


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline;
 filename=0004-Just-for-testing-Remove-Tramp-specific-workaround-in.patch

From 7bb5dc7cfa7ff3d553369270f7cc6cd9868c69e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= <joaotavora@HIDDEN>
Date: Wed, 15 Mar 2023 19:52:34 +0000
Subject: [PATCH 4/4] Just for testing: Remove Tramp-specific workaround in
 Eglot

* lisp/progmodes/eglot.el (eglot--connect): No longer bind tramp vars.
(tramp-ssh-controlmaster-options)
(tramp-use-ssh-controlmaster-options): Remove.
---
 lisp/progmodes/eglot.el | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 6c1b9eafe43..f96f7dd254f 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -130,8 +130,6 @@
 (defvar markdown-fontify-code-blocks-natively)
 (defvar company-backends)
 (defvar company-tooltip-align-annotations)
-(defvar tramp-ssh-controlmaster-options)
-(defvar tramp-use-ssh-controlmaster-options)
 
 
 ;;; User tweakable stuff
@@ -1251,15 +1249,7 @@ eglot--connect
                         (contact (cl-subseq contact 0 probe)))
                    `(:process
                      ,(lambda ()
-                        (let ((default-directory default-directory)
-                              ;; bug#61350: Tramp turns on a feature
-                              ;; by default that can't (yet) handle
-                              ;; very much data so we turn it off
-                              ;; unconditionally -- just for our
-                              ;; process.
-                              (tramp-use-ssh-controlmaster-options t)
-                              (tramp-ssh-controlmaster-options
-                               "-o ControlMaster=no -o ControlPath=none"))
+                        (let ((default-directory default-directory))
                           (make-process
                            :name readable-name
                            :command (setq server-info (eglot--cmd contact))
-- 
2.39.2


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 15:02:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 11:02:45 2023
Received: from localhost ([127.0.0.1]:42751 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcp7t-0002YY-G6
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 11:02:45 -0400
Received: from mout.gmx.net ([212.227.17.20]:53659)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pcp7s-0002YK-1K
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 11:02:44 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1678978957; i=michael.albinus@HIDDEN;
 bh=kT0Si1qPzNDBjy80LT0bd2f+fKKJPLkzBDUX/E1qtHo=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=rx4MXMZA7YlBVKkdOFWtIPrV1XucHAs3KEZmWt/haW1ZuQ8OX5vnnmeso0vdDxmSo
 hB/EYVKtCcx/xKRSb8pP9eht4z+4n3eK8qAQvJnBxxT0ZvM/ftRT/XnDRcTHNWKsJi
 yWmmDzEn5/XexCdg0/y+ifK0Z6fGLqkJSIn4BCLEmvqdqVFf4zjThDXpkG7TazuvF9
 VIxoOH5uEdQLs6zGPaXgsuuIQewtSayyxNzWDJKfg8IW9ZnrI7Ri+OzfNmQRC6R4Rt
 j/oL+fHc14U7xyloJsFvo53ceBy4rrHThbLjfAgyKjw3hQ9MvFUvboPbqlMtochDv9
 TKfbBmYIq5sEg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.19]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M1po0-1pf0yr1gl6-002J4d; Thu, 16
 Mar 2023 16:02:37 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87zg8d4von.fsf@HIDDEN> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?=
 =?utf-8?Q?a=22's?= message of "Wed, 15 Mar 2023 20:16:24 +0000")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <87zg8d4von.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 16:02:36 +0100
Message-ID: <87jzzgivsj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:TQPNPHeyZQKVEXahN6HdjCH5NUPo94Gxe571Lb0ebOubmsh2qMQ
 o+kaeg5xPnHSqGeqFcvqWd5Mcmj5wTtqa7PzYdSoEJXAvHaWWmLxvr9VjfozFOPKCr2Dk7G
 W36mne7lxAe1IEc339YlUAtRRUjr9y6RpmrvjTkCnRp8ee+UbjH8UMyP5YJIIEiR7UeXNrF
 ouup5VQjkQlZsELYhMW4w==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:lPtaXIjWcEI=;G7zWv46ZxqKAw9J2lkQHESMsqkZ
 bxp4y5rN3lS/HVyl966ztEdE36Sy2teC91o3o5AOpgAlbM3hfDQBUJFxDZ8nZUF7nZi92ktHE
 BG6Cc4byxCcj+knx701WQulPlHd4BBv0q/ia3r24axP7kAPWiABV91Kp29aOoB/nNj/CQXlq9
 zthUU+Kd2Zwm7/wdvtD5csvGhrVXRVkUkJEneXwStXA3zARU4iLu185nPQrlMvYNkZIGZAIsn
 7iuCgaJ84Y3XNw/M2oJN516wxfvig7eGnIapW3i5L1tlGaTRj1hnoujqY6Z3qxDaRHWeCitCr
 iHX/3CcRtacTJ78rObMuds3HQwqwLUrOcouA0bHGQFDBDz+RI60k/eHIsefOxDH++3vJfS1uT
 aBG1e9laV1Dv6KLskOhv7rz8ifGak03a/BX2JGRwJrepZVTKxZ0asYybwQXmKI6j1visU88BF
 sFYzhepGfvM6OLDNfdDz6xW1ugDD7re9ZV+h0pXwRJCu515tChp8PF4KfUts79xGOXw98fXfI
 XSt1SolgLWkMNJyj+Ckz8ZZ/OBbwOGOFNpVZKwsrBV6okgtiYOCris7wvKLaOyL6uB9a71zCz
 yZmIr5w7LhNBI7RUmgdPfsZ6O/wrYl5KwtlTQMXA5RKDxrArTzExjBHePm0VuduZ2D3Iji3Ve
 IMUDxAZApwCVF8XLcM5GOHol7B6Y+bPr9kpKS49fEFrNqoLOx4rRIirtWqnIARWUPPbocMnk1
 eLKRIqgarsWh1AxrpxFp3XDateY+FrfJ9OZqPTJT+xpOS4hBLDyYTy25DsZYvUfA3wWxDs8sB
 gE37EEPviFXdEHxCgHLBqFdqhER+OfNm3OyyBgi3QzGEQBO6vsT2GpWceeCOJXrV8nU2OIHiH
 3+zoFl+6Dc6nNeClMqL+HAIiuUHeArwuFj5e4jqAAiLytPrTdK45NrkIsXAldWXM1fkuFZJL7
 w7hcmk2zzgYMIGjBEID59n4FQw4=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

Hi Jo=C3=A3o,

>> Well, if I call it w/o a SELECTOR, I get 14 failing tests. clangd is
>> installed:
>>
>> # which clangd
>> /var/lib/snapd/snap/bin/clangd
>>
>> This might not be the canonical path, but at least the local tests shall
>> find it. I'm running Fedora 37. Could you, pls, check? The log file is a=
ppended.
>
> I cant' reproduce, but I haven't got Fedora.  The logs only tell that
> -- apparently -- the LSP server never replied to Eglot.

Yes. I don't remember when and from where I installed the snap
package. But this clangd looks strange; it even doesn't respond to
"clangd --version".

Further search has told me, that Fedora keeps clangd in the package
clang-tools-extra. After installing this package, all Eglot tests pass
as expected.

> Jo=C3=A3o

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 14:57:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 10:57:37 2023
Received: from localhost ([127.0.0.1]:42735 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcp2v-0002OY-48
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 10:57:37 -0400
Received: from mout.gmx.net ([212.227.15.15]:39233)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pcp2k-0002OC-MM
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 10:57:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1678978640; i=michael.albinus@HIDDEN;
 bh=daRxt2thBrh2JeCuXggB0Ug+hHWYJpNDkvnL2fTnBeU=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=N1Hn8hseLuPqdUkRSRgVxWRQUcRc/DrnyaiOHJnrgM7hJjNHdbeqfD/bpvbbNktVy
 Q82VvU/mAOeMGH9toDUrCXW+uaEYXeugpV3LuXHqVhFtANRKlPA6rSHjVRpQMYzXHg
 4eFQRXTcbe/xWZ9jcIojxtr8VJ10tF8uyBTvxxNax3TlEmDLBylox0q8+F+r9gfkip
 SKsXNETnneBFJXqwfYjcGlGpIx2+X3lU4f50UBxGMCljawWXUmGeBX6RYXJtndLTWS
 e626wJBI8tSIzRPkGWs8y8fhvhg7CoRBP85xIV974JZYyo5N5vxgUnvkHDAkUE1pT+
 I8c6Z7qVvsAFA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.19]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MzhnH-1qPAX31Fdh-00vh4I; Thu, 16
 Mar 2023 15:57:20 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <878rfw51mh.fsf@HIDDEN> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?=
 =?utf-8?Q?a=22's?= message of "Thu, 16 Mar 2023 12:20:22 +0000")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN> <878rfw51mh.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 15:57:17 +0100
Message-ID: <87pm98iw1e.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:Y1zbm2Mtm0sngNxAy1GKvUjMFB0TM7noyhOoqcSeQuvxgVTfi2+
 4VTMXO7g6BNmrdplyUxe8/TZdLslKoThWLtJtPlvO5ktqxK34uSUjONQ/y/RVinlDESzZAe
 ZSvSmbc4MMj+1pRoJ4PSlnyg8FYkboGugMJ5wluhXfZuJgw5OPZZATzQiNB3fUNSlrh5oWJ
 9zp4hNInWl7EQSz+02QZQ==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:i3MEvuLwrPM=;Gyfp3tMOri2FP7u44wYSyltZZoW
 t821UdFAUYI01VIdyN7lVMRTcdUPIXBLIKQ/Tjv1WjlqaCzh39YfpoahlT05mTgZbcZbnWZDm
 KrDMcD5PcAtTypRZLR7LpewQIqIs/Mkoqx+AmLWczlNRAIcmElS2S1Mqb1lVd/7o+HQCssTGU
 4rUqKdbVkaedUUbKo889iNxWzWJQ65P97t5PDdebcNseixVcf+VcG+KioEgLljaLe/yRnuBRm
 59W0ThjvCVgxV3zYtaxVI9mjNRYQ8auPR2PYDwSiliM+looSyfV/gZw5z0zqx+wxSYlRU1eEH
 jQJ/MNq+CugNXEBjxykRV8o8XGx2CHcUaLInr3QBglH+4/fBco/kRU2IUK5+15sPjbArfGyvn
 7WE9jHxIheK7/4xZES54vbHhOmeafepZ0LgB23JoGjytbUK+2fW5rDlGXN17D16rN4UnuVaoS
 2Fy8rzWerflQwci0khXiNi0YgURpith4Q7H5vjnOUQX775ShhmJ9ziWgvYZx4YvC0K+F2BufQ
 Pzx1SLnLjWmSwTvaWNrZm6jn6yrURdgRos0BR6vGfnkvfcN2gnZ3zFECZ5VNVjZVPqAPSmcmB
 5h08DLT0fuzoJmTHxIJ2fWfBPe4YzxqkTlL5SD5NxsA6CKw52CvYrlV9GJxZxnZ/JDoD3yfMr
 8UaXakZn5+oUcjbRjlEmRB9XqmOou9s44KUpd2dKXq6/JsdjpKiIxUK+YzS9eDh9oTBOey2Ci
 cIzTreFyffMFYBppgsZcsf+JFMuCPKBhrWDjpK2Fj2FWupVpVpRw6vkEt7kWngzflGwHDT3Tt
 m4whS/prgwflp0tardrz24BCDMzTidjAlKzmNFkyC41J8vhkTVNUnxzOPEGd4LX7lxPndRmRJ
 EpF+53SkXQ8wYtqvnCxz5agTgJI7IspfyirPW13PMy9TdFp3NLMj0xmqDYXGN7GIrxcP7GZ7c
 e8chHg==
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

Hi Jo=C3=A3o,

> Michael, now you've brought back the Eglot/Tramp hang of bug#61350!
>
> Really Michael, please consider reverting 0330cff65ae (your latest) and
> 54ef338ba36 (from two days ago), and going back to the simpler version
> that you originally proposed, with just the 'while' added there.

Honestly, I'm lost with all the patches back forth and back. Could you
pls show me the change you propose, based on the current master state? I
don't believe we need to revert the timeout change I have applied,
because in fact any tramp-accept-process-output shall use a timeout of
0; otherwise it could block.

> It fixes all this mess.  _Then_ we can go get to thinking about the
> "simple and robust" implementation.

Yes. Although I have no clue yet what shall be done.

> Jo=C3=A3o

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 12:18:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 08:18:32 2023
Received: from localhost ([127.0.0.1]:41437 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcmYy-00068a-2f
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 08:18:32 -0400
Received: from mail-wr1-f44.google.com ([209.85.221.44]:47079)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcmYw-00068K-D3
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 08:18:30 -0400
Received: by mail-wr1-f44.google.com with SMTP id r29so1310275wra.13
 for <62194 <at> debbugs.gnu.org>; Thu, 16 Mar 2023 05:18:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678969104;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=46Nnorxg10Je/v7uA9r7JFy9V7N27HeTu9egnbrNA4w=;
 b=pjL+CC2kTmnIZKw2KtFUofGZKZxEhn3vOnzc2kJtKhWaVEMvLU/ROV7nKizqx5zZqR
 8J0Bnl6V9La4QXUifLC+kgcE7yfbcxtzTRnnMRBD4Agr5x2iOKA+FpicFGTFAmEW/4cy
 8lVxpH1fjrquZj9IKt/pF2yFE31LCD5wNS5wyj5ePijLL7a3hTtZucLiBNXcZoGV3C3K
 N+1DUVDWeQA26+orC2FC0Tdm99fT43mEkQ1MOd5wdE+iyFY/s+Frhlcmi/gE+R4IaHBc
 rKJwmk6MIDcOQyxZc/hEcjj4ePqHXirGdPTMxvVufI6kXJOSVcPjyhL+48v27OgWvOm4
 PL2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678969104;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=46Nnorxg10Je/v7uA9r7JFy9V7N27HeTu9egnbrNA4w=;
 b=G9N5C47RYI69IYCnTNCR+9+HykOdPCOijWiW3f/FbR2HImZzJintTskNEpj5xezeYk
 NczKpGC4HPf6wZIrnueqpDzTynlHw5UgmK+lk//i/9YSN9y+YbsuuPXKZY4D8rRYOp1o
 m7KoCjFK5aLRdmNHh4kTepVa9scxClc0hYukDMEI5jiG/bDiawEs3k7BxNLmb4D2q5W+
 YDxxzRz7Fu5GydmIT91ur4YkcUTzUEiwRETXD98aKa20ciu9BZN+IYOlY2JRJHkYoTI7
 R7a+dibKXCox5jdvcLCnLxHkGNOMYeCHhYC0inN6AIewtx6WLwyRm4Yw/DOurI09f/Os
 tBrg==
X-Gm-Message-State: AO0yUKU90P0VzzrhRLZu89+cvDI6QcKuvWZsXKuwlwOZWC7K76TVCt5u
 2biJkapWIvQ8FQxgZte/fE76/jpHLWk=
X-Google-Smtp-Source: AK7set+rqu9mR6eMjx9ot8nQ1yg9p3CusuhmLcj/UipaRuHb1KgHAqqgnBARGwbWxfw3ySWSwYeqWg==
X-Received: by 2002:a5d:4d05:0:b0:2ce:b781:b1e5 with SMTP id
 z5-20020a5d4d05000000b002ceb781b1e5mr4256667wrt.19.1678969103825; 
 Thu, 16 Mar 2023 05:18:23 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 d16-20020a5d5390000000b002cea392f000sm7052200wrv.69.2023.03.16.05.18.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 16 Mar 2023 05:18:23 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87ttykj45i.fsf@HIDDEN> (Michael Albinus's message of "Thu, 16
 Mar 2023 13:02:01 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 <87ttykj45i.fsf@HIDDEN>
Date: Thu, 16 Mar 2023 12:20:22 +0000
Message-ID: <878rfw51mh.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Michael Albinus <michael.albinus@HIDDEN> writes:

> Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> 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 understoo=
d,
>> 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
>
> (when (and (not result) (process-get proc 'shared-socket))
>
> 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.

Michael, now you've brought back the Eglot/Tramp hang of bug#61350!

Really Michael, please consider reverting 0330cff65ae (your latest) and
54ef338ba36 (from two days ago), and going back to the simpler version
that you originally proposed, with just the 'while' added there.

It fixes all this mess.  _Then_ we can go get to thinking about the
"simple and robust" implementation.

Jo=C3=A3o




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 16 Mar 2023 12:02:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 16 08:02:12 2023
Received: from localhost ([127.0.0.1]:41426 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcmJA-0005hQ-16
	for submit <at> debbugs.gnu.org; Thu, 16 Mar 2023 08:02:12 -0400
Received: from mout.gmx.net ([212.227.17.21]:43057)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pcmJ7-0005hA-BU
 for 62194 <at> debbugs.gnu.org; Thu, 16 Mar 2023 08:02:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1678968122; i=michael.albinus@HIDDEN;
 bh=Dmdgow3BOBIm7FkM/Jh2TNPOxTnecetmpd5FNeC/4ro=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=NeGNJDXM+JOx1WNNuAxITiYcYPNaTma4c9znZcYPTRGHYzflWvmajiTjUqvEFTZFI
 OVSn4xlyJydfAeksmOLKhzizggJz1s8k0ESjeIEl4TWLwyzjrPZqgbfKuXzEudRL+8
 EN/5PhA5cQ1GLSHE4DAsW6Vf77VToOf50RaH+oxG/Qk/EalgZSUO8X0dRCyPWh1YUd
 MVPHfCsTCUdY3a8f57GNr5OXL5//SzjNsionp7zYTHZ+MIwEESIM+UZQEOLWshZLl6
 KqNaOHK9m7x3f2o7hJB88paGt0ZgtKO9hvUuPSdm8BfBAzpKqddTTnL1bSGtQz72zC
 agoAXtY4sDrwg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.19]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MpUYu-1qJrwU2cLU-00py6e; Thu, 16
 Mar 2023 13:02:02 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
 (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vora=22's?= message of "Wed, 15 Mar 2023
 20:45:47 +0000")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
 <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
Date: Thu, 16 Mar 2023 13:02:01 +0100
Message-ID: <87ttykj45i.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:mGnsKhgbplA+nbJrWt8w3uvtbuRm0zIINzxarrJMhwxTjSj8rSd
 qHtZkFNJ1EfT8LFL28v5oF6qrlG9D92C179W8AVZvPM7Hbabx2RuwVsvshHN0R/DFYhsvSx
 ZuulAREfJumhCsfMuro4DTXfOukNivhHkECZRP0Nw9wFMlmzW3uMxrZNG8e7I0CfPYS/RmC
 HDNhgFiS3LR7BWKcsmXQA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:aM9omZxhm6I=;YuxVkTGZgVyvKpz1fReQSLcD3BX
 g6kGo1XXjykIQ7WyTk394sVwyQq9sGUA6xVT/a4zhMlmAdSIZHZhmiMIV0Saja2b7Dtsk9+RF
 bAv1/gSKMHhdXA3XPtyRre458UZ4+54OqLLkZWQvytehSPl/OjzzpYX8IT7RUmQIdcIqO1t1a
 Zo2V3zwTBvyDN8kSNsmalPW3rraPwE3jRZQOuBU5Z3fjmL1KEtzkJZdSTAv6qA4ecDwE3vrkP
 O8clpyzJvODs9gRJXLgESsNniWczAfh0Iy3oq/ZpL64R9bJbKXpFu99BBMciheA7R+gth7Cp3
 7khP4xb9vOXrbJG6wP0mxgViivoo3VO8uq8RyQBE+1TcQnkXSZLwgksHltn+Lt8b3BM0NV73f
 orMNqs2Zqzamtr8FeSTLirXRn1VD2sdGZpmnXXmbmcLPuYS5cL7R33BFS9AO7jLnupyuNk+q+
 UZ2n1q2BawFrC9xjWjb0UUaZNHKPdaljgrMEHCREldc4jeg6GBMa63Fz7+HmDG8zrSl0TuuiZ
 Ogx7dPpKdH/TtKV1ZdsZTbH82VBcHIxiJRk7VjsUXwo4jjgpZEGOY+OkrAXK2TQdMFPkT1lzc
 IrGyH6M01J4325p2jIEpJyBX2nOQ7fdsm2Z5nMUJepssQtDuyKeYu9YVL3fNMBRln+gAdUgSl
 Z3GU0ZkJ4quUfpToIJY86Gp3FoXDOrqlWGEFT0cjBkcBsjybi+jV6QA+pzMyQP4Swx3GVSKcE
 GegLlipFjPguBKnkv4j85wYYCfBAEQfs32p7ZtSDF8bBzTEYnXPDrQu4BnF+/Bad0ZLv2L0/w
 mZsVkYPevGV/6yyU7QyZOxiqiD+ZTbCuWr8vbs3yijHcrrV/iP/T8KRUl8oyGrSedbraXbAaP
 Da6SpzdPNKVxI75ekp5WQvgZQ442R8MMWVu5EqTPoLVQSQ3KtmBZROPQpFBZ3EjWq83HjQGtE
 1UC1KD6hpAd2zlb76UOvA+z3sK0=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org, miha@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> 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 a=
nother
> 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=C3=A3o

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 15 Mar 2023 20:44:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 15 16:44:03 2023
Received: from localhost ([127.0.0.1]:40623 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcXyd-0001JA-D2
	for submit <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:44:03 -0400
Received: from mail-oi1-f177.google.com ([209.85.167.177]:34334)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcXyc-0001IS-7T
 for 62194 <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:44:02 -0400
Received: by mail-oi1-f177.google.com with SMTP id w133so2981765oib.1
 for <62194 <at> debbugs.gnu.org>; Wed, 15 Mar 2023 13:44:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678913036;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=Lutn3Pqm2a78/bxsX7aXadwdFwEurH00hSJHbx5rTH4=;
 b=QdqaDQFpJfgQ+mOLT6L2EAQUDVAQFxz5Y6gTJ6UJwsu2uGNOZlH01NfpeRrd7BYLRc
 9upEQWRbSu0GFEp9nBu5OXE8ym88112S/1p3hFq/TYuPg8fLHr/+UTXRoImME2X6wq3o
 FCvaUBts/DTRak/Iz+0ZmcKd6FZH2L01UD2SWNM0aAYrZvyXT74UPl1IINS+dc1IIZP9
 dI/3RAA7gNZxB5vThE1ZXvdtG01x4M7xqdoydJhm2W6qgoxN1k3he9yaqJFGKy3WtPb/
 MKJBXWuSiJs8185/akYLgeYcoUz3KLlywed87CZOy7hBlqdpoETy87E3mjamN+dvI2Ai
 IU+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678913036;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=Lutn3Pqm2a78/bxsX7aXadwdFwEurH00hSJHbx5rTH4=;
 b=UKocEsGEEntKmzzwg4DS5H+JR/7cTwa03VGliYapXD713IZGLhYRcZRUb5nWWwTi3l
 MS0nAsRaHNPHU4bJqOQX33pFmEY4Zow2yBvAftkYj0WL6nazZPJMKct46WAD0edmwLpM
 KW75vK2hwEC7e7Uyk4tsPsFrURmdTpu8Noel4f2E4mkgSze7U8C0JiSLI8ioT9TTdOVy
 cNgsMbGbGPJLim7SMveEankERgY1eUyr3+NZ6FNQpGuBRfvZjAzXbnssWFGS4GHblrIo
 otDQnw5UzAl3os5Zh++oP0m0BtS0eiSf+DC/aOSnBxOkkXDhmcuvUgZH3oBWe9kIsyxr
 8fVA==
X-Gm-Message-State: AO0yUKU0IckW+UPlLPCgu++VI0x4EQoeWlCDms2PiV+VF2cYJYQVTIgE
 CcK5BHeuAtK3oGB49dBNl5KlATdiEr2BGRSNiXo=
X-Google-Smtp-Source: AK7set9r2nbH/ooEWV8Ch/Wal7frYAkOZXXa632aXV720z6cwA2FFOd0JlLt117VZilukNH3yDPZGTnlqZAgOVKehRM=
X-Received: by 2002:a05:6808:3013:b0:383:f981:b1e5 with SMTP id
 ay19-20020a056808301300b00383f981b1e5mr1585787oib.5.1678913036643; Wed, 15
 Mar 2023 13:43:56 -0700 (PDT)
MIME-Version: 1.0
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN> <875yb1pxai.fsf@miha-pc>
In-Reply-To: <875yb1pxai.fsf@miha-pc>
From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Date: Wed, 15 Mar 2023 20:45:47 +0000
Message-ID: <CALDnm50YjHKg+TDJ3yxmnGyrEaZAxqEqSgihzLEbGfKFCo97nQ@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
To: miha@HIDDEN
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: Michael Albinus <michael.albinus@HIDDEN>, 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Wed, Mar 15, 2023 at 8:31=E2=80=AFPM <miha@HIDDEN> wrote:
>

>         (dolist (p (delq proc (process-list)))
>           (when (tramp-file-name-equal-p v (process-get p 'vector))
> THIS -->    (accept-process-output p 0 nil t))))
>
> I'm somewhat against these additional accept-process-output calls. While
> we do limit them to processes from the same ssh connection, I'd argue
> that usually, such processes aren't really related to the main tramp ssh
> process. They could be a random *shell* process that doesn't really
> belong to tramp.el any more IMO. Or in this case, eglot's jsonrpc
> process.

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 ano=
ther
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?

Jo=C3=A3o




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 15 Mar 2023 20:31:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 15 16:31:22 2023
Received: from localhost ([127.0.0.1]:40614 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcXmM-0000xd-EX
	for submit <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:31:22 -0400
Received: from mail.kamnitnik.top ([209.250.245.214]:42554)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <miha@HIDDEN>) id 1pcXmJ-0000xU-Q0
 for 62194 <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:31:20 -0400
From: miha@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kamnitnik.top;
 s=mail; t=1678912278;
 bh=Z/SlBDQSfYv9lWj5DDK0WwiftGy2mU+SwS5Fsgf8wc0=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=nU6RJhjj6qQqpGuUZ8mprDvKFfJMfkGOfVisnJ0Fz9SmPUFXmU7+j6rUUo7iwCIiy
 RZLiR10AEiSdCIzYKSNoIWc2NWaShZJs0PHw0aTtYbYDMMAZ5b8R7XzS11CcKDUpDS
 mO7E37mWB3j7CvRwm5hdjhvqHbINVrvZ72htdWf29oAGgvcPR4JiKP2iK4Fr4w+80r
 s6nvy/steFoWX5SiCtT9E/fGY2yYZMKrvj5LkgoLMMeiiLbytSQLNHfQgGhrBelVzC
 fB6darWzt++2xaZwqfeXwqit50iAPqJDMSI8GaueqcKOS/K1fKG4lcb4CP2Icp+nM+
 sw19FbALeL+Mg==
To: Michael Albinus <michael.albinus@HIDDEN>, =?utf-8?B?Sm/Do28gVMOhdm9y?=
 =?utf-8?B?YQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <874jqmjl0s.fsf@HIDDEN>
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN>
Date: Wed, 15 Mar 2023 21:36:05 +0100
Message-ID: <875yb1pxai.fsf@miha-pc>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.0 (/)

--=-=-=
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Michael Albinus <michael.albinus@HIDDEN> writes:

> That is, file "project/merdix.c" is viewed, which has the absolute path
> "/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/project/merdix.c". It has
> been loaded into the buffer successfully, and 'run-hooks(find-file-hook)'
> is applied. Since the file is under vc control, 'vc-registerd' is invoked.
> Some lines up in the backtrace, we see
>
> --8<---------------cut here---------------start------------->8---
>   jsonrpc--process-filter(#<process EGLOT (project/(c-mode c-ts-mode c
>   accept-process-output(#<process EGLOT (project/(c-mode c-ts-mode c++
>   tramp-accept-process-output(#<process *tramp/ssh albinus@detlef*>)
>   tramp-wait-for-regexp(#<process *tramp/ssh albinus@detlef*> nil "\\(
>   tramp-wait-for-output(#<process *tramp/ssh albinus@detlef*>)
>   tramp-send-command((tramp-file-name "ssh" "albinus" nil "detlef" nil
>   tramp-send-command-and-check((tramp-file-name "ssh" "albinus" nil "d
>   tramp-run-test("-d" "/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt")
>   tramp-sh-handle-file-directory-p("/ssh:albinus@detlef:/tmp/eglot--fi
> --8<---------------cut here---------------end--------------->8---
>
> Tramp needs to know, whether a remote file is a directory, and it
> sends the command "test -d /tmp/eglot--fixture2kRNPt". It waits for the
> result in 'tramp-accept-process-output(#<process *tramp/ssh albinus@detle=
f*>)'
> However, 'tramp-accept-process-output' reads also the jsonrpc output by=20
> 'accept-process-output(#<process EGLOT (project/(c-mode c-ts-mode c++...',

I guess that this must be due to

    (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-ha=
ndler'."
      (declare (advertised-calling-convention (proc) "29.2"))
      ;; There could be other processes which use the same socket for
      ;; communication.  This could block the output for the current
      ;; process.  Read such output first.  (Bug#61350)
      (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))
THIS -->    (accept-process-output p 0 nil t))))

I'm somewhat against these additional accept-process-output calls. While
we do limit them to processes from the same ssh connection, I'd argue
that usually, such processes aren't really related to the main tramp ssh
process. They could be a random *shell* process that doesn't really
belong to tramp.el any more IMO. Or in this case, eglot's jsonrpc
process.

On a bright note, I've been playing around with the original Eglot
freeze bug#61350. It seems that, given two ControlMaster ssh processes
where one refuses to produce output due to the other filling up the
shared ssh connection, we can unblock the blocked process by sending it
SIGWINCH.

Here is a POC tramp-accept-process-output implementation that does this,
and it seems to fix the freeze bug:

    (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-ha=
ndler'."
      (declare (advertised-calling-convention (proc) "29.2"))
      (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 0 nil t))
                  (when (and (not result) (process-get proc 'shared-socket))
                    ;; bug#62194
                    (tramp-message
                     proc 10 "%s: Trying to unblock process with SIGWINCH" =
proc)
                    (internal-default-signal-process proc 'sigwinch))
                  t)
                (tramp-message
                 proc 10 "%s %s %s\n%s"
                 proc (process-status proc) result (buffer-string))
              ;; Propagate quit.
              (keyboard-quit)))
          result)))

Best regards.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQJHBAEBCAAxFiEEmxVnesoT5rQXvVXnswkaGpIVmT8FAmQSLDUTHG1paGFAa2Ft
bml0bmlrLnRvcAAKCRCzCRoakhWZPzP2D/9UP0tqtg9rxHlOdrEM4nuLHQUnXikT
gTVEHLIhrJzDiKHblQVhJEayADbfYB/VX6VTDAqPohaX1/dLWhswMN3fvBghJfdg
zJnDN+Qa4BBytLtcYgw+IXo3hk4nDahol6bph5QvkH+n10T5VTs75xzP3fl4NaMt
oBB8Hh+l7qMw8g4YRL5ayPbvESE/w9fAI1by6oBam+JQhcXWkksv7GtlJDeNPJN/
3gI95HTlGefmwTTO0vMlFYsd4GsvJnIS/zFW4NXZS360VkClH62ZGhF37xE0vK8S
d01refIXY/mz6NZiKZs0fwY/TcaEbBeSPHlbtrqoA0HMlaHHr2mQBYwBrF19YKLg
BjAei0kZ5zRPciYPToKZF7/0wC4a7HqNAHw+jXPM2OQMVPYPrwqyDHnXenoXuL5T
zEpLTEBugAqCYM2Z24Z80H7WL6GYuE5/0pFtTx16YTPr3tPgpQpfRV35D3SthAhM
6mzNMh5MNopQtypf3INCLKEc85CurvUimXllgABO76tr7WIBKZJl5ht+b79XvLFb
rSZvFR8rJhwGyFzgIA5Ga+4kecqI7hUBiMwyWVXlLMyA/t6RU6AOaGFdFFC32s0H
9L6HPx6glsMb2DaEO/6eSZ2HDktpg1gu3OMwgFbVkE2oVRu8pdpzf7BRLL1M5Gr6
6sep36Ju76k/xQ==
=8wiR
-----END PGP SIGNATURE-----
--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 15 Mar 2023 20:22:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 15 16:22:49 2023
Received: from localhost ([127.0.0.1]:40609 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcXe5-0000j6-D8
	for submit <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:22:49 -0400
Received: from mail-wm1-f41.google.com ([209.85.128.41]:53107)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcXe3-0000is-HY
 for 62194 <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:22:47 -0400
Received: by mail-wm1-f41.google.com with SMTP id bi20so3462417wmb.2
 for <62194 <at> debbugs.gnu.org>; Wed, 15 Mar 2023 13:22:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678911761;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=z/oWlq8gSPjJXm5NPtjwwpsZmp60nFVHVv/7ylkA6T4=;
 b=ECgbpSxL1+M9I9Jup4WasCXZiVpa89oZAJNHq3dYEMJJm401btvvu8ALpHC1t6BL+U
 P1r444ZsAnbR3umOriagukNjjdjTamETT0KO1Lq3vYnrUUEOUV6ygBeU36i24mD9RU9H
 Ln+OpJNNyuliG+ZcaSX/t5JQN1lctLk84s5cphGXJ/RVXEn/sITllcRU7/8XunL3APCZ
 VsLcdw8QQZBzI73ocYSPcq/rlC6TBCWgHSopIHyrPcIVcSZiVlU1MwXQXHbLBmGKWExo
 XEuh9XaSK3fSpdhpc8m9aM/+6DevQUXxFKE6vc9Z3UjFeaB6qbi8lBD3TYl/m+8SDnWb
 Tt3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678911761;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=z/oWlq8gSPjJXm5NPtjwwpsZmp60nFVHVv/7ylkA6T4=;
 b=spampemxgcUADG+xbRzITFWRh83Pid9ve92Nl9Ml4BTQvbvmDjOzvqGeZFhWVCU/ox
 PhsrBLi9Mgi8ihypPw2HLDY9Jhsp+atcoDWXMcCF2DljJroGi04aWwtUG3mS/emIJuqo
 CGyS1JfIHnnxbCktSSAnnrTgrGZb2bp51oCdHaa/oamPj45zJiXf5FAn8WECCZ7wS5MS
 wnr85bguEl5Z+OWZpuZ990Qwpnh7TLr0/ZdIY3R60tNfDGXyxk602GTDnD+V9HaNpoS7
 7YuG+YvlaDtcSgwj//O68i/Pnd4faylt5cxhBq8VfzOPHkZyfFmMLRzPWyci8HpjSaD8
 BwjA==
X-Gm-Message-State: AO0yUKVmKjpNywiIcFGIQK5w4sZ5J/bcSQYRhUJOWCa59/tweuAiQ8B2
 8rFix5ivB2itRcvU52ydu2g5ESg/RCo=
X-Google-Smtp-Source: AK7set9aXGqVrn5sMvxUrQINsRq0hMiWhxQSrjP5OrE6B4jB/ntOqv5Z1RV8aoAB58uCFYRPip0pQQ==
X-Received: by 2002:a05:600c:3b9d:b0:3ed:29db:cb80 with SMTP id
 n29-20020a05600c3b9d00b003ed29dbcb80mr9337939wms.18.1678911761309; 
 Wed, 15 Mar 2023 13:22:41 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 p11-20020a05600c1d8b00b003daffc2ecdesm2883810wms.13.2023.03.15.13.22.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 15 Mar 2023 13:22:40 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <874jqmjl0s.fsf@HIDDEN> (Michael Albinus's message of "Wed, 15
 Mar 2023 12:45:23 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
 <874jqmjl0s.fsf@HIDDEN>
Date: Wed, 15 Mar 2023 20:24:41 +0000
Message-ID: <87v8j14vau.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

merge 62194 61350
thanks

Michael Albinus <michael.albinus@HIDDEN> writes:

> So I reommend the following:
>
> - At least in 'eglot--call-with-tramp-test', better in your Eglot
>   package, suppress vc related checks, by binding
>
>   (let ((vc-ignore-dir-regexp
>          (format "\\(%s\\)\\|\\(%s\\)"
>                  vc-ignore-dir-regexp
>                  tramp-file-name-regexp)))
>      ...)
>
> - If this works sufficiently, this bug shall be either closed, or merged
>   with bug#60534, which tracks this error.

I don't think I should be doing something this in eglot-tests.el,
because the tests pass on emacs-29 and this failure was introduced
very recently.

I've just confirmed inequivocally that these failures are direct fallout
from the fix to bug#61350, so I'm merging the two bugs: 62194 and 61350.

As I wrote in bug#61350, if I revert that commit and apply the simpler
patch that we discussed, everything's good, and I can remove the
ControlMaster supression workaround in Eglot, too.

Jo=C3=A3o

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 47173b95bea..885b29f9471 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -5800,6 +5800,11 @@ tramp-accept-process-output
 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-handl=
er'."
+  (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 nil t)))))
   (with-current-buffer (process-buffer proc)
     (let ((inhibit-read-only t)
 	  last-coding-system-used







Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 15 Mar 2023 20:14:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 15 16:14:31 2023
Received: from localhost ([127.0.0.1]:40605 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcXW3-0000Wc-EW
	for submit <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:14:31 -0400
Received: from mail-wr1-f53.google.com ([209.85.221.53]:46057)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcXW2-0000WN-84
 for 62194 <at> debbugs.gnu.org; Wed, 15 Mar 2023 16:14:30 -0400
Received: by mail-wr1-f53.google.com with SMTP id l1so18376086wry.12
 for <62194 <at> debbugs.gnu.org>; Wed, 15 Mar 2023 13:14:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678911264;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=dUQYeGtWvrmcbDm4HaZZTeXVkXq/410Zu2puOYyr1ck=;
 b=Rae0skgq1o3zGnLg9wMO7FuM08cf6FEdxGqWi14X6UnajZSxDrXb4cEl7BK9Sflyd+
 gZmLD9KzlzM4qvEok2qaX1ArQ04Zo020xplvcFly4he6WH6xBdbZF0HxTvkkqEYO3xYD
 Y+ei0N94Gll/xpcXZAEt2yBzeF+lqj/dS8cgk1BboJDCYh1jzXsoNHvUJZrHIanlSrkj
 CY7XTMPPhTRb009o7OPKNwAbmRdbS1PRlggOv2GYu+wxrWPPXGziQQCvqIw9Fn0403qY
 Oehw2XML6W2Dv3DnoqjgNp91sB39hz3UHGHZYLM575Z3CBuu9Hk5j+Sr9eZIIZsG6dJg
 iLyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678911264;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=dUQYeGtWvrmcbDm4HaZZTeXVkXq/410Zu2puOYyr1ck=;
 b=7IID3Ns6iC86/oy0oGHs3NQWZcF4Z3iOwN9BjojzmM7YxCxmGSEP4kP7DQnFIy9Qan
 XS3vjKAbu5Suy2Fbp2H+e9xr5DejwT+toFS9G9bqzVgAoDGYr13CbjWcUSpQslpp/niS
 4G5dygP9H+kpyJDSd3ZnrLTDRe9WtWcf0mNF8wRCr80xlUOH7BcGQkB45xaz2Ogae4im
 YiXpp9qtCc+6vk9v8ZlV1dVcHQ1T36EF8xe6vbRgWNnyxtugJzdJx5oBvJ3yAyWIjDoG
 1+xmqAYtJcNtxbbSIgMd44PESKmWAq7vehhGoC/5DervFuNDTsTQBPQcxaF3Ih6r5biQ
 gKaw==
X-Gm-Message-State: AO0yUKWbPMW3mtJ5hmF9hozW3yYcnwSgsPegJD+5a2jH/vZDQdghJ3My
 H6IX5DiechjMCqg0BOyD9ZDvJwBaBCE=
X-Google-Smtp-Source: AK7set+70EkG6A0UggZRtwtpuJdpj94GY9qAWnrRXG5ODct0NPgAlaRh5GS7LXleF8wf0yJ4AFvcxQ==
X-Received: by 2002:a5d:4405:0:b0:2c7:e5f:e0e0 with SMTP id
 z5-20020a5d4405000000b002c70e5fe0e0mr2926026wrq.65.1678911264364; 
 Wed, 15 Mar 2023 13:14:24 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 j14-20020a5d448e000000b002c56af32e8csm5552074wrq.35.2023.03.15.13.14.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 15 Mar 2023 13:14:24 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87edpqjqsv.fsf@HIDDEN> (Michael Albinus's message of "Wed, 15
 Mar 2023 10:40:32 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
Date: Wed, 15 Mar 2023 20:16:24 +0000
Message-ID: <87zg8d4von.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Michael Albinus <michael.albinus@HIDDEN> writes:

> Well, if I call it w/o a SELECTOR, I get 14 failing tests. clangd is
> installed:
>
> # which clangd
> /var/lib/snapd/snap/bin/clangd
>
> This might not be the canonical path, but at least the local tests shall
> find it. I'm running Fedora 37. Could you, pls, check? The log file is ap=
pended.

I cant' reproduce, but I haven't got Fedora.  The logs only tell that
-- apparently -- the LSP server never replied to Eglot.

Jo=C3=A3o




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 15 Mar 2023 11:45:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 15 07:45:34 2023
Received: from localhost ([127.0.0.1]:39201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcPZV-00082i-Ko
	for submit <at> debbugs.gnu.org; Wed, 15 Mar 2023 07:45:34 -0400
Received: from mout.gmx.net ([212.227.17.22]:33095)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pcPZS-00082R-KT
 for 62194 <at> debbugs.gnu.org; Wed, 15 Mar 2023 07:45:31 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1678880724; i=michael.albinus@HIDDEN;
 bh=nl6GsrCr905ERSwxy4/bLsSUoMmHZ5yGfpTfInlsGkU=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=uWjxwcYc02xywn9ef7kY+D9Gqd9nFaK+KpnjYXXyvkSN4dgr98qGR/j5XqNZbu/th
 nIK+qJlCRNNRdX19V884S5tUTk+2dIfnm++5Y4gqpaPYTZust5d3cSROgQEByRxINZ
 SKI/awUKHhs2pBvh+V6/qsEEHOxgUVkaDZPRGqrT9pXy0yQSdbDqVN/xppCN0L78NY
 IunJW4hyI3NsvpD2tVw9NC5NV/m9c7LS2fb9nfrZpEAjp50ZAX/aQ9LPXCjCLvj9+I
 QBssushB8YZUpFyINkaLUm9rtpuWjTkY84wAUexuelry+ULsnGxmBdZS30Fj270Q4J
 JfIV80oGGYslA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.22]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MybKf-1qRlbK3qTV-00yxbu; Wed, 15
 Mar 2023 12:45:24 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87edpqjqsv.fsf@HIDDEN> (Michael Albinus's message of "Wed, 15
 Mar 2023 10:40:32 +0100")
References: <87wn3jue1q.fsf@HIDDEN> <87edpqjqsv.fsf@HIDDEN>
Date: Wed, 15 Mar 2023 12:45:23 +0100
Message-ID: <874jqmjl0s.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:Oc7jUB4f3hHKX2Qb4shyOh86eYKTMluBk8GuXhPnnpig2k59OOQ
 uJU3RvYETKF7n5ghzj+V2ztv37zGaoqqTtXN+AAkFoxB5lnPqwR/LAEQpI7AMOaU7Y9wlLv
 VGtJpapUwuQa7IUdfpZCpDIl4m1zQ6ALHvYXlcdWQLR5NwNfZ7il3X5tLCxpwfrxL4QOghL
 rP72kk/epMEVcQ7XHRPkw==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:FznHgYyRTZo=;YBvVKPaxGWW5LYCqC8luOyhj9Of
 Tf1Im0k6xaNt+HtR5cOd7NriroMudh9q7bx/gi7l9BCV2PasFuWZajJ4fObt0drUEn3NVwHmD
 6kqV8X/P7w1mrKdLmowNOlIa2hWKa2i02Gn1EJjMEs7SXqDFrujgbiHH/p4odR2toLwXHRdlX
 DbHBehsTwylGiinnIfecTg1nJCiZkv2Lu8kCzCCp6h8fdG++8Hjue9UwWjA83BEEI5FA/4xxm
 nmG0ZS+Ht8OM/MDJfZOxNkHILP2nwYc+1nUNHMNDP485Y53UWWwTAfk5PKdCE3sJYZLYY59BB
 BDegeFBOSkrz+kDwrG9Nda1OuG7DpMehwQXQSS6b21u9NMu69Lo4zq++KTT1u5v1+ekP/1ZrG
 gjbFcDz9ISr6soluDsiQBApE10uRy4cBeHWDjiJ//aF3J4tPiV0ajejLoakfFIDZI2HhvowoN
 8aLEwXY56PwmptyyfS13EntCEBPea+i3MbQpFs+QplfGd2CRWYsVkzov14vRV8JO2PN0iGwKm
 AWM1LuDgVBuTKj8lSU9Rqhx0wUEUFdp0EHmGtl967zV8ojppntU/ERWvAh6k07+jDg2Qb/9fZ
 Z6FL5IbVsjbj3NAHi5Fy+3QVGL9MwcpbGpgf21SqvQXfRVfWYZWxWsesCZUabJpRNPeFOdA5b
 6pY6liXIlkpqml6us7Ovw4SoCx25m9S1ApyUCb2wSS3Gq3RYN+PFgzOF3CFA/k//9uw1Pak4p
 F34uz9N3LzVksGtCe58O2CmLcGwvfRP52efSRpFY/5WcHbW4KcpJZJ426i2DlvNboG21raObQ
 WOasut5eOhg9pcy4ch2ar68a7bPwQM7PBYqdw5GOCb1YKEOnvRI7lhRFBCupTQvQ0Q3uqkvK5
 W+lX+0/stMSi3xdENKOV9oENtuB/leDACUoFQrPfZ9QQFaAffMyhZ2sHX7VKxhWgczPu7g97d
 oGN3Cz87P0Vg0nR8bUuaY+Lkd2s=
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Michael Albinus <michael.albinus@HIDDEN> writes:

Hi Jo=C3=A3o,

> This might not be the canonical path, but at least the local tests shall
> find it. I'm running Fedora 37. Could you, pls, check? The log file is ap=
pended.

In order to force analysis, I have used as remote server another one,
which runs Ubuntu 22.10. clangd is installed there at a canonical
location:

--8<---------------cut here---------------start------------->8---
# which clangd
/usr/bin/clangd
--8<---------------cut here---------------end--------------->8---

And I run the tests from my Fedora laptop like

--8<---------------cut here---------------start------------->8---
env REMOTE_TEMPORARY_FILE_DIRECTORY=3D'/ssh:albinus@detlef:/tmp' make -C te=
st eglot-tests.log SELECTOR=3D'"tramp"'
--8<---------------cut here---------------end--------------->8---

Sometimes the tests pass, sometimes not. In the latter case, it is the
same picture as you have reported. But I wanted to reproduce it locally.

The most interesting part is the backtrace:

--8<---------------cut here---------------start------------->8---
Test eglot-test-tramp-test backtrace:
  tramp-sh-handle-file-attributes("/ssh:albinus@detlef:/tmp/eglot--fix
  apply(tramp-sh-handle-file-attributes "/ssh:albinus@detlef:/tmp/eglo
  tramp-vc-file-name-handler(file-attributes "/ssh:albinus@detlef:/tmp
  file-attributes("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj.
  tramp-handle-file-symlink-p("/ssh:albinus@detlef:/tmp/eglot--fixture
  apply(tramp-handle-file-symlink-p "/ssh:albinus@detlef:/tmp/eglot--f
  tramp-vc-file-name-handler(file-symlink-p "/ssh:albinus@detlef:/tmp/
  file-symlink-p("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj..
  tramp-sh-handle-file-truename("/ssh:albinus@detlef:/tmp/eglot--fixtu
  apply(tramp-sh-handle-file-truename "/ssh:albinus@detlef:/tmp/eglot-
  tramp-vc-file-name-handler(file-truename "/ssh:albinus@detlef:/tmp/e
  file-truename("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj...
  find-buffer-visiting("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/
  #f(compiled-function (arg1 arg2 &rest rest) "Handle notification pub
  apply(#f(compiled-function (arg1 arg2 &rest rest) "Handle notificati
  eglot-handle-notification(#<eglot-lsp-server eglot-lsp-server-9d34aa
  apply(eglot-handle-notification #<eglot-lsp-server eglot-lsp-server-
  #f(compiled-function (server method params) #<bytecode -0xa39641d878
  jsonrpc-connection-receive(#<eglot-lsp-server eglot-lsp-server-9d34a
  jsonrpc--process-filter(#<process EGLOT (project/(c-mode c-ts-mode c
  accept-process-output(#<process EGLOT (project/(c-mode c-ts-mode c++
  tramp-accept-process-output(#<process *tramp/ssh albinus@detlef*>)
  tramp-wait-for-regexp(#<process *tramp/ssh albinus@detlef*> nil "\\(
  tramp-wait-for-output(#<process *tramp/ssh albinus@detlef*>)
  tramp-send-command((tramp-file-name "ssh" "albinus" nil "detlef" nil
  tramp-send-command-and-check((tramp-file-name "ssh" "albinus" nil "d
  tramp-run-test("-d" "/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt")
  tramp-sh-handle-file-directory-p("/ssh:albinus@detlef:/tmp/eglot--fi
  apply(tramp-sh-handle-file-directory-p "/ssh:albinus@detlef:/tmp/egl
  tramp-vc-file-name-handler(file-directory-p "/ssh:albinus@detlef:/tm
  file-directory-p("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/")
  locate-dominating-file("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNP
  vc-find-root("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj..."
  vc-svn-registered("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/pro
  apply(vc-svn-registered "/ssh:albinus@detlef:/tmp/eglot--fixture2kRN
  vc-call-backend(SVN registered "/ssh:albinus@detlef:/tmp/eglot--fixt
  #f(compiled-function (b) #<bytecode 0x133be07a00af7442>)(SVN)
  mapc(#f(compiled-function (b) #<bytecode 0x133be07a00af7442>) (RCS C
  vc-registered("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj...
  apply(vc-registered "/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/p
  tramp-run-real-handler(vc-registered ("/ssh:albinus@detlef:/tmp/eglo
  tramp-sh-handle-vc-registered("/ssh:albinus@detlef:/tmp/eglot--fixtu
  apply(tramp-sh-handle-vc-registered "/ssh:albinus@detlef:/tmp/eglot-
  tramp-sh-file-name-handler(vc-registered "/ssh:albinus@detlef:/tmp/e
  apply(tramp-sh-file-name-handler vc-registered "/ssh:albinus@detlef:
  tramp-file-name-handler(vc-registered "/ssh:albinus@detlef:/tmp/eglo
  vc-registered("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj...
  vc-backend("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj...")
  vc-refresh-state()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<killed buffer> "/ssh:albinus@detlef:/tmp/eglo
  find-file-noselect("project/merdix.c")
  eglot--find-file-noselect("project/merdix.c")
  (set-buffer (eglot--find-file-noselect "project/merdix.c"))
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure ((server . #<eglot-lsp-server eglot-lsp-server-9d34aa>)) ni
  funcall((closure ((server . #<eglot-lsp-server eglot-lsp-server-9d34
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("coiso.c" . "bla") ("merdix.c"
  (let (server) (eglot--call-with-fixture '(("project" ("coiso.c" . "b
  eglot-tests--auto-detect-running-server-1()
  funcall(eglot-tests--auto-detect-running-server-1)
  (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-
  eglot--call-with-tramp-test(eglot-tests--auto-detect-running-server-
  (closure (tramp-histfile-override company-candidates typescript-mode
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-tramp-test :documentation=20
  ert-run-or-rerun-test(#s(ert--stats :selector "tramp" :tests ... :te
  ert-run-tests("tramp" #f(compiled-function (event-type &rest event-a
  ert-run-tests-batch("tramp")
  ert-run-tests-batch-and-exit("tramp")
  eval((ert-run-tests-batch-and-exit '"tramp") t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
--8<---------------cut here---------------end--------------->8---

Let's analyze bottom up. The very first time Tramp is involved is here:

--8<---------------cut here---------------start------------->8---
  tramp-file-name-handler(vc-registered "/ssh:albinus@detlef:/tmp/eglo
  vc-registered("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj...
  vc-backend("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj...")
  vc-refresh-state()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<killed buffer> "/ssh:albinus@detlef:/tmp/eglo
  find-file-noselect("project/merdix.c")
  eglot--find-file-noselect("project/merdix.c")
--8<---------------cut here---------------end--------------->8---

That is, file "project/merdix.c" is viewed, which has the absolute path
"/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/project/merdix.c". It has
been loaded into the buffer successfully, and 'run-hooks(find-file-hook)'
is applied. Since the file is under vc control, 'vc-registerd' is invoked.
Some lines up in the backtrace, we see

--8<---------------cut here---------------start------------->8---
  jsonrpc--process-filter(#<process EGLOT (project/(c-mode c-ts-mode c
  accept-process-output(#<process EGLOT (project/(c-mode c-ts-mode c++
  tramp-accept-process-output(#<process *tramp/ssh albinus@detlef*>)
  tramp-wait-for-regexp(#<process *tramp/ssh albinus@detlef*> nil "\\(
  tramp-wait-for-output(#<process *tramp/ssh albinus@detlef*>)
  tramp-send-command((tramp-file-name "ssh" "albinus" nil "detlef" nil
  tramp-send-command-and-check((tramp-file-name "ssh" "albinus" nil "d
  tramp-run-test("-d" "/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt")
  tramp-sh-handle-file-directory-p("/ssh:albinus@detlef:/tmp/eglot--fi
--8<---------------cut here---------------end--------------->8---

Tramp needs to know, whether a remote file is a directory, and it
sends the command "test -d /tmp/eglot--fixture2kRNPt". It waits for the
result in 'tramp-accept-process-output(#<process *tramp/ssh albinus@detlef*=
>)'
However, 'tramp-accept-process-output' reads also the jsonrpc output by=20
'accept-process-output(#<process EGLOT (project/(c-mode c-ts-mode c++...',
which triggers 'jsonrpc--process-filter'. This results finally, on top of
the backtrace, in another remote Tramp command:

--8<---------------cut here---------------start------------->8---
  tramp-sh-handle-file-attributes("/ssh:albinus@detlef:/tmp/eglot--fix
  apply(tramp-sh-handle-file-attributes "/ssh:albinus@detlef:/tmp/eglo
  tramp-vc-file-name-handler(file-attributes "/ssh:albinus@detlef:/tmp
  file-attributes("/ssh:albinus@detlef:/tmp/eglot--fixture2kRNPt/proj.
--8<---------------cut here---------------end--------------->8---

It isn't visible in the backtrace, but it is for sure the famous
"Forbidden reentrant call of Tramp" error.

So I reommend the following:

- At least in 'eglot--call-with-tramp-test', better in your Eglot
  package, suppress vc related checks, by binding

--8<---------------cut here---------------start------------->8---
  (let ((vc-ignore-dir-regexp
         (format "\\(%s\\)\\|\\(%s\\)"
                 vc-ignore-dir-regexp
                 tramp-file-name-regexp)))
     ...)
--8<---------------cut here---------------end--------------->8---

- If this works sufficiently, this bug shall be either closed, or merged
  with bug#60534, which tracks this error.

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at 62194 <at> debbugs.gnu.org:


Received: (at 62194) by debbugs.gnu.org; 15 Mar 2023 09:40:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 15 05:40:41 2023
Received: from localhost ([127.0.0.1]:39108 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcNcf-0001Iz-Hx
	for submit <at> debbugs.gnu.org; Wed, 15 Mar 2023 05:40:41 -0400
Received: from mout.gmx.net ([212.227.15.18]:42637)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>) id 1pcNce-0001In-7N
 for 62194 <at> debbugs.gnu.org; Wed, 15 Mar 2023 05:40:40 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417;
 t=1678873233; i=michael.albinus@HIDDEN;
 bh=Rd0OWQEGUlSXp2/P5DdEtD773+UXS7K38tE5XGOvCoA=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=uSa0AbyUwWuy9fMBtic+V96x3G7hK29Ss495phGt8t5gN1nnIaEWPA8AImcOjRHXu
 M2S1Hzsbq6e219EjNkWffjdAhCfaPJAptIqhJUuiec5i7pPYT4LVEUUFAzklJOF9KJ
 E+gG+VAKkHZqV9aCw6xZDQlzbEJRXs6494RUdQpKW8YgStMbM76dB2+TL2q1BzzCQg
 dJcQIOYyrRgw9Mt/MfDqKrzb2s8NsuZL1xYOPKGQqFarOEalmpOgIAPDVOlo49ql0x
 tEKtrlJXCvKh2SwaB/gCSZ6qvdC3QGuRdKcGq5EKGPfzIoOapJddspkbkufT2WZVyx
 8546+J8Vv6sVg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from gandalf.gmx.de ([185.89.39.22]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N8GQs-1qXWaH1Phg-014GmI; Wed, 15
 Mar 2023 10:40:33 +0100
From: Michael Albinus <michael.albinus@HIDDEN>
To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
Subject: Re: bug#62194: 30.0.50; Two Eglot-over-Tramp tests are failing on
 master, passing on emacs-29
In-Reply-To: <87wn3jue1q.fsf@HIDDEN> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?=
 =?utf-8?Q?a=22's?= message of "Tue, 14 Mar 2023 23:08:17 +0000")
References: <87wn3jue1q.fsf@HIDDEN>
Date: Wed, 15 Mar 2023 10:40:32 +0100
Message-ID: <87edpqjqsv.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Provags-ID: V03:K1:LiBR56QlW+Koaw8VDoSZdi41U8KMel/AEAe1cLwPZ9hN5o9cflY
 gkOtQ9jYVA8o6ujih8RPu0+NP9CDp+u474RiG8TSGm1nfre+4jSvDQH+My5/N/B4ceDFq2G
 u+EXOgIwtJLu5hvtOT9Sr+6aERclihqkM4u+M1SZT16lMlKlukHkjA4lpGlxgydg9TYLEs0
 95k3r8KUVpUR+c0qBVhNg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:uumE19SNOJY=;FoQKYC76LZqiZ3LmyDKUrAxkwMS
 kMtl5rfvrmQ3f3YqbkdBJhZc+I/4F/54G6di70fCvMUmDcoT8+jqjVvsb2m+ol77E4bdRfs3Z
 fSIOGRlO195vgag9VjOgVjvFwx10CFko8Nqo03Re8FZlBET7gFnjNanWTB2BgwHg1B7xxUH+p
 xfG29dBZZOrEOpHjpfaW4bTXURKzrSBPthZ5858xJTzpBV5dHzFpVKypFp60uIczF65W9j+QG
 psHsXvjMHxZ28NMjXv5hGrVaQ5PcOOwpNEuOO+RFLY3Z2h9yRMuvHczU+TAj8tg7drfxsQMim
 PyY5D7BBOrFoBq/G5hPgAAeQNAcUrHjrGwmG7glRv48ILP4WDM96KsfZ49oaGEA+bHyicXTww
 BVmcHJMnUet5toRPmmWacL3BljIdqYWln1ULENDXaA0r+LJBxuo3b1YwkgvUtM4/mMssJqyj6
 dI3OgvoJ9nO8nFDqx5G6WjVGAw8RrWD8piranSigDjfyfI1TAy//2Q9uQZF6TfsZKkuwjFpbM
 VzO5SzabOVTTOX3wYEqaDkzGNM4FdDVnAVmdG3R/Bx1JRqX44+A6DbmoDtZxx8Khp5kzcqlv9
 sgo2KXTXlKMsC2zAClk3NtVu2MzkmvMKBYE4cp3VYLT89otjZhHZZF+dHldsBlW+j1fAoZSBn
 Ar13pG7WGyFOihsspAt2vXOra7eXd+EaaufHfGTR5VRc6EQ9tmd2AB1en7ftWXAZ+o+COshQx
 kk7Gy7lQ+Cxz6Wey+VeKAt+fSuBMnbRx328Prw/IEYDkdaO87EKc+LPSU//TRFBTQhtNb39hC
 RO1fC0WjrP/4cFV8EG5253OVBcmh2tNIUh+Jk75xeeQnUFRy9dUS+96siR4Di6WyK6ljtZJDq
 iJ31ae3/Fc85UWIBLtBOjaW2z/ZZ49BwYy7jr6fyEWXCyeIFaNC+/e/U6yM2Lp6RSSutg8wWv
 x+BTaABILJNSEmucmRR0uKWtrpI=
X-Debbugs-Envelope-To: 62194
Cc: 62194 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Jo=C3=A3o T=C3=A1vora <joaotavora@HIDDEN> writes:

> Hi Michael,

Hi Jo=C3=A3o,

> I've noticd that these two Eglot tests are passing on emacs-29 but
> failing on emacs master.  I haven't checked if this is due to your
> recent work on Tramp or some other factor.
>
> Sometimes one of the tests passes, but having the two of them pass is
> rare.  In emacs-29, they always pass.  Both emacs-master and emacs-29
> have the version of Eglot _with_ the ControlMaster-neutering workaround.
>
> To reproduce, you need the "clangd" language server installed (which is
> one of the easiest to get language servers, should be available in your
> package manager).
>
> Then:
>
>    make -C test lisp/progmodes/eglot-tests SELECTOR=3D\"tramp\"

FTR, the following woul=C3=B6d be sufficient:

--8<---------------cut here---------------start------------->8---
make -C test eglot-tests ...
--8<---------------cut here---------------end--------------->8---

Well, if I call it w/o a SELECTOR, I get 14 failing tests. clangd is
installed:

--8<---------------cut here---------------start------------->8---
# which clangd
/var/lib/snapd/snap/bin/clangd
--8<---------------cut here---------------end--------------->8---

This might not be the canonical path, but at least the local tests shall
find it. I'm running Fedora 37. Could you, pls, check? The log file is appe=
nded.

> Jo=C3=A3o

Best regards, Michael.


--=-=-=
Content-Type: text/plain
Content-Disposition: attachment; filename=eglot-tests.log
Content-Transfer-Encoding: quoted-printable

Running 50 tests (2023-03-15 10:19:58+0100, selector `(not (or (tag :unsta=
ble) (tag :nativecomp)))')
[eglot-tests] [eglot-test-auto-detect-running-server]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-auto-detect-running-server]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) stderr*':

Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) stderr fin=
ished
[eglot-tests] contents of `*EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) events*':
[internal] Wed Mar 15 10:19:58 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:19:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureGOqwaT/project/" :roo=
tUri "file:///tmp/eglot--fixtureGOqwaT/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGOqwaT/project" :name "/tmp/eglo=
t--fixtureGOqwaT/project/")]))
[internal] Wed Mar 15 10:20:08 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[eglot-tests] Killing (coiso.c), wiping /tmp/eglot--fixtureGOqwaT, restori=
ng nil
Test eglot-test-auto-detect-running-server backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c-mode c-ts-mode c++-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (setq server (eglot--tests-connect))
  (setq value-10 (setq server (eglot--tests-connect)))
  (unwind-protect (setq value-10 (setq server (eglot--tests-connect)))
  (if (unwind-protect (setq value-10 (setq server (eglot--tests-connec
  (let (form-description-11) (if (unwind-protect (setq value-10 (setq
  (let ((value-10 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure ((server)) nil (save-current-buffer (set-buffer (eglot--fin
  funcall((closure ((server)) nil (save-current-buffer (set-buffer (eg
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("coiso.c" . "bla") ("merdix.c"
  (let (server) (eglot--call-with-fixture '(("project" ("coiso.c" . "b
  eglot-tests--auto-detect-running-server-1()
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-auto-detect-running-server
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-auto-detect-running-server condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED   1/50  eglot-test-auto-detect-running-server (10.149717 sec) at=
 lisp/progmodes/eglot-tests.el:355
[eglot-tests] [eglot-test-auto-reconnect]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-auto-reconnect]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) stderr*':

Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) stderr fin=
ished
[eglot-tests] contents of `*EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) events*':
[internal] Wed Mar 15 10:19:58 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:19:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureGOqwaT/project/" :roo=
tUri "file:///tmp/eglot--fixtureGOqwaT/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGOqwaT/project" :name "/tmp/eglo=
t--fixtureGOqwaT/project/")]))
[internal] Wed Mar 15 10:20:08 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:08 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:08 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturewNlzZp/project/" :roo=
tUri "file:///tmp/eglot--fixturewNlzZp/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturewNlzZp/project" :name "/tmp/eglo=
t--fixturewNlzZp/project/")]))
[internal] Wed Mar 15 10:20:18 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[eglot-tests] Killing (thingy.c), wiping /tmp/eglot--fixturewNlzZp, restor=
ing nil
Test eglot-test-auto-reconnect backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c-mode c-ts-mode c++-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (setq server (eglot--tests-connect))
  (setq value-66 (setq server (eglot--tests-connect)))
  (unwind-protect (setq value-66 (setq server (eglot--tests-connect)))
  (if (unwind-protect (setq value-66 (setq server (eglot--tests-connec
  (let (form-description-67) (if (unwind-protect (setq value-66 (setq
  (let ((value-66 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure ((server)) nil (save-current-buffer (set-buffer (eglot--fin
  funcall((closure ((server)) nil (save-current-buffer (set-buffer (eg
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("thingy.c" . "bla") ("thingy2.
  (let (server (eglot-autoreconnect 1)) (eglot--call-with-fixture '(("
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-auto-reconnect :documentat
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-auto-reconnect condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED   2/50  eglot-test-auto-reconnect (10.142759 sec) at lisp/progmo=
des/eglot-tests.el:379
[eglot-tests] [eglot-test-auto-shutdown]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-auto-shutdown]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) stderr*':

Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) stderr fin=
ished
[eglot-tests] contents of `*EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) events*':
[internal] Wed Mar 15 10:19:58 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:19:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureGOqwaT/project/" :roo=
tUri "file:///tmp/eglot--fixtureGOqwaT/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGOqwaT/project" :name "/tmp/eglo=
t--fixtureGOqwaT/project/")]))
[internal] Wed Mar 15 10:20:08 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:08 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:08 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturewNlzZp/project/" :roo=
tUri "file:///tmp/eglot--fixturewNlzZp/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturewNlzZp/project" :name "/tmp/eglo=
t--fixturewNlzZp/project/")]))
[internal] Wed Mar 15 10:20:18 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:18 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:18 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturehfF6Pn/project/" :roo=
tUri "file:///tmp/eglot--fixturehfF6Pn/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturehfF6Pn/project" :name "/tmp/eglo=
t--fixturehfF6Pn/project/")]))
[internal] Wed Mar 15 10:20:28 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[eglot-tests] Killing (thingy.c), wiping /tmp/eglot--fixturehfF6Pn, restor=
ing nil
Test eglot-test-auto-shutdown backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c-mode c-ts-mode c++-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (setq server (eglot--tests-connect))
  (setq value-44 (setq server (eglot--tests-connect)))
  (unwind-protect (setq value-44 (setq server (eglot--tests-connect)))
  (if (unwind-protect (setq value-44 (setq server (eglot--tests-connec
  (let (form-description-45) (if (unwind-protect (setq value-44 (setq
  (let ((value-44 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (save-current-buffer (set-buffer (setq buffer (eglot--find-file-nose
  (closure ((buffer . #<killed buffer>) (server)) nil (save-current-bu
  funcall((closure ((buffer . #<killed buffer>) (server)) nil (save-cu
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("thingy.c" . "int main() {retu
  (let (server buffer) (eglot--call-with-fixture '(("project" ("thingy
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-auto-shutdown :documentati
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-auto-shutdown condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED   3/50  eglot-test-auto-shutdown (10.154016 sec) at lisp/progmod=
es/eglot-tests.el:360
  skipped   4/50  eglot-test-basic-completions (0.007256 sec)
[eglot-tests] [eglot-test-basic-diagnostics]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-basic-diagnostics]: FAILED
[eglot-tests] contents of ` *EGLOT (diag-project/(c-mode c-ts-mode c++-mod=
e c++-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (diag-project/(c-mode c-ts-mode c++-mod=
e c++-ts-mode)) stderr*':

Process EGLOT (diag-project/(c-mode c-ts-mode c++-mode c++-ts-mode)) stder=
r finished
[eglot-tests] contents of `*EGLOT (diag-project/(c-mode c-ts-mode c++-mode=
 c++-ts-mode)) events*':
[internal] Wed Mar 15 10:20:29 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:29 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureyg5veW/diag-project/"=
 :rootUri "file:///tmp/eglot--fixtureyg5veW/diag-project" :initializationO=
ptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.81=
25 data
																						())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureyg5veW/diag-project" :name "/tmp=
/eglot--fixtureyg5veW/diag-project/")]))
[internal] Wed Mar 15 10:20:39 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (diag-project/(c-mode c-ts-mode c++-mode c++-ts-mod=
e)) stderr finished
[eglot-tests] Killing (main.c), wiping /tmp/eglot--fixtureyg5veW, restorin=
g nil
Test eglot-test-basic-diagnostics backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c-mode c-ts-mode c++-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (let (s-notifs) (advice-add #'jsonrpc--log-event :before #'(lambda (
  (unwind-protect (let (s-notifs) (advice-add #'jsonrpc--log-event :be
  (save-current-buffer (set-buffer (eglot--find-file-noselect "diag-pr
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  funcall((closure (typescript-mode-abbrev-table typescript-mode-synta
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("diag-project" ("main.c" . "int main(){fr
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-basic-diagnostics :documen
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-basic-diagnostics condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED   5/50  eglot-test-basic-diagnostics (10.148437 sec) at lisp/pro=
gmodes/eglot-tests.el:437
  skipped   6/50  eglot-test-basic-xref (0.000175 sec)
   passed   7/50  eglot-test-capabilities (0.000090 sec)
   passed   8/50  eglot-test-dcase (0.000078 sec)
   passed   9/50  eglot-test-dcase-issue-452 (0.000057 sec)
[eglot-tests] [eglot-test-diagnostic-tags-unnecessary-code]: test start
[eglot-tests] [eglot-test-diagnostic-tags-unnecessary-code]: FAILED
[eglot-tests] Killing (main.cpp), wiping /tmp/eglot--fixture1mMI9I, restor=
ing nil
Test eglot-test-diagnostic-tags-unnecessary-code backtrace:
  (json-serialize (vector (list ':directory default-directory ':comman
  (cons "compile_commands.json" (json-serialize (vector (list ':direct
  (eglot--make-file-or-dir (cons "compile_commands.json" (json-seriali
  (save-current-buffer (set-buffer (eglot--find-file-noselect "diag-pr
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  funcall((closure (typescript-mode-abbrev-table typescript-mode-synta
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("diag-project" ("main.cpp" . "int main(){
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-diagnostic-tags-unnecessar
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-diagnostic-tags-unnecessary-code condition:
    (void-function json-serialize)
   FAILED  10/50  eglot-test-diagnostic-tags-unnecessary-code (0.007393 se=
c) at lisp/progmodes/eglot-tests.el:455
  skipped  11/50  eglot-test-eclipse-connect (0.000350 sec)
  skipped  12/50  eglot-test-eldoc-after-completions (0.000269 sec)
[eglot-tests] [eglot-test-ensure]: test start
[eglot] Waiting in background for server `EGLOT (project/(c-mode c-ts-mode=
 c++-mode c++-ts-mode))'
[eglot-tests] [eglot-test-ensure]: FAILED
[eglot] Asking EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) pol=
itely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Non-critical cleanup error: (error "[eglot] -1: Server died"=
)
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) stderr*':
[eglot-tests] contents of `*EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) events*':
[internal] Wed Mar 15 10:19:58 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:19:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureGOqwaT/project/" :roo=
tUri "file:///tmp/eglot--fixtureGOqwaT/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGOqwaT/project" :name "/tmp/eglo=
t--fixtureGOqwaT/project/")]))
[internal] Wed Mar 15 10:20:08 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:08 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:08 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturewNlzZp/project/" :roo=
tUri "file:///tmp/eglot--fixturewNlzZp/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturewNlzZp/project" :name "/tmp/eglo=
t--fixturewNlzZp/project/")]))
[internal] Wed Mar 15 10:20:18 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:18 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:18 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturehfF6Pn/project/" :roo=
tUri "file:///tmp/eglot--fixturehfF6Pn/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturehfF6Pn/project" :name "/tmp/eglo=
t--fixturehfF6Pn/project/")]))
[internal] Wed Mar 15 10:20:28 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:39 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:39 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureRUxVaa/project/" :roo=
tUri "file:///tmp/eglot--fixtureRUxVaa/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureRUxVaa/project" :name "/tmp/eglo=
t--fixtureRUxVaa/project/")]))
[client-request] (id:2) Wed Mar 15 10:20:42 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[internal] Wed Mar 15 10:20:45 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[eglot-tests] Killing (foo.c), wiping /tmp/eglot--fixtureRUxVaa, restoring=
 (c-mode-hook)
Test eglot-test-ensure backtrace:
  signal(ert-test-failed (((should (setq server (eglot-current-server)
  ert-fail(((should (setq server (eglot-current-server))) :form (setq
  (if (unwind-protect (setq value-452 (setq server (eglot-current-serv
  (let (form-description-453) (if (unwind-protect (setq value-452 (set
  (let ((value-452 (gensym "ert-form-evaluation-aborted-"))) (let (for
  (save-current-buffer (set-buffer (ert-simulate-command '(find-file "
  (let (server) (save-current-buffer (set-buffer (ert-simulate-command
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("foo.c" . "int foo() {return 4
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-ensure :documentation "Tes
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-ensure condition:
    (ert-test-failed
     ((should
       (setq server
	     (eglot-current-server)))
      :form
      (setq server
	    (eglot-current-server))
      :value nil))
   FAILED  13/50  eglot-test-ensure (6.194872 sec) at lisp/progmodes/eglot=
-tests.el:892
   passed  14/50  eglot-test-glob-test (0.064999 sec)
  skipped  15/50  eglot-test-javascript-basic (0.000263 sec)
  skipped  16/50  eglot-test-json-basic (0.000168 sec)
[eglot-tests] [eglot-test-lsp-abiding-column]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-lsp-abiding-column]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) stderr*':

Process EGLOT (project/(c-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(c-mode)) events*':
[internal] Wed Mar 15 10:20:46 2023:
(:message "Running language server: clangd")
[client-request] (id:1) Wed Mar 15 10:20:46 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePO4VrS/project/" :roo=
tUri "file:///tmp/eglot--fixturePO4VrS/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePO4VrS/project" :name "/tmp/eglo=
t--fixturePO4VrS/project/")]))
[internal] Wed Mar 15 10:20:56 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[eglot-tests] Killing (foo.c), wiping /tmp/eglot--fixturePO4VrS, restoring=
 nil
Test eglot-test-lsp-abiding-column backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode) (transient . "/tmp/eglot--fixturePO4VrS/proj
  apply(eglot--connect ((c-mode) (transient . "/tmp/eglot--fixturePO4V
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (let (c-notifs) (advice-add #'jsonrpc--log-event :before #'(lambda (
  (unwind-protect (let (c-notifs) (advice-add #'jsonrpc--log-event :be
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (let ((eglot-server-programs '((c-mode "clangd")))) (save-current-bu
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("foo.c" . "const char write_da
  eglot-tests--lsp-abiding-column-1()
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-lsp-abiding-column :docume
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-lsp-abiding-column condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED  17/50  eglot-test-lsp-abiding-column (10.782969 sec) at lisp/pr=
ogmodes/eglot-tests.el:887
  skipped  18/50  eglot-test-multiline-eldoc (0.000179 sec)
  skipped  19/50  eglot-test-non-unique-completions (0.000155 sec)
  skipped  20/50  eglot-test-path-to-uri-windows (0.000084 sec)
  skipped  21/50  eglot-test-project-wide-diagnostics-rust-analyzer (0.000=
148 sec)
  skipped  22/50  eglot-test-project-wide-diagnostics-typescript (0.000150=
 sec)
  skipped  23/50  eglot-test-python-autopep-formatting (0.000138 sec)
  skipped  24/50  eglot-test-python-yapf-formatting (0.000265 sec)
[eglot-tests] [eglot-test-rename-a-symbol]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-rename-a-symbol]: FAILED
[eglot-tests] contents of ` *EGLOT (rename-project/(c-mode c-ts-mode c++-m=
ode c++-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (rename-project/(c-mode c-ts-mode c++-m=
ode c++-ts-mode)) stderr*':

Process EGLOT (rename-project/(c-mode c-ts-mode c++-mode c++-ts-mode)) std=
err finished
[eglot-tests] contents of `*EGLOT (rename-project/(c-mode c-ts-mode c++-mo=
de c++-ts-mode)) events*':
[internal] Wed Mar 15 10:20:56 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:56 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureG1IY17/rename-project=
/" :rootUri "file:///tmp/eglot--fixtureG1IY17/rename-project" :initializat=
ionOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold =
0.8125 data
																						    ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureG1IY17/rename-project" :name "/t=
mp/eglot--fixtureG1IY17/rename-project/")]))
[internal] Wed Mar 15 10:21:06 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (rename-project/(c-mode c-ts-mode c++-mode c++-ts-m=
ode)) stderr finished
[eglot-tests] Killing (main.c), wiping /tmp/eglot--fixtureG1IY17, restorin=
g nil
Test eglot-test-rename-a-symbol backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c-mode c-ts-mode c++-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (save-current-buffer (set-buffer (eglot--find-file-noselect "rename-
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  funcall((closure (typescript-mode-abbrev-table typescript-mode-synta
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("rename-project" ("main.c" . "int foo() {
  (closure (typescript-mode-abbrev-table typescript-mode-syntax-table
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-rename-a-symbol :documenta
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-rename-a-symbol condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED  25/50  eglot-test-rename-a-symbol (10.163936 sec) at lisp/progm=
odes/eglot-tests.el:534
  skipped  26/50  eglot-test-rust-analyzer-hover-after-edit (0.000172 sec)
  skipped  27/50  eglot-test-rust-analyzer-watches-files (0.000147 sec)
  skipped  28/50  eglot-test-rust-on-type-formatting (0.000152 sec)
[eglot-tests] [eglot-test-same-server-multi-mode]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-same-server-multi-mode]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c++-mode c-mode c-ts-mode c++=
-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c++-mode c-mode c-ts-mode c++=
-ts-mode)) stderr*':

Process EGLOT (project/(c++-mode c-mode c-ts-mode c++-ts-mode)) stderr fin=
ished
[eglot-tests] contents of `*EGLOT (project/(c++-mode c-mode c-ts-mode c++-=
ts-mode)) events*':
[internal] Wed Mar 15 10:21:07 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:21:07 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureZNVza4/project/" :roo=
tUri "file:///tmp/eglot--fixtureZNVza4/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureZNVza4/project" :name "/tmp/eglo=
t--fixtureZNVza4/project/")]))
[internal] Wed Mar 15 10:21:17 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c++-mode c-mode c-ts-mode c++-ts-mode)) s=
tderr finished
[eglot-tests] Killing (foo.cpp), wiping /tmp/eglot--fixtureZNVza4, restori=
ng nil
Test eglot-test-same-server-multi-mode backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c++-mode c-mode c-ts-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c++-mode c-mode c-ts-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (setq server (eglot--tests-connect))
  (setq value-935 (setq server (eglot--tests-connect)))
  (unwind-protect (setq value-935 (setq server (eglot--tests-connect))
  (if (unwind-protect (setq value-935 (setq server (eglot--tests-conne
  (let (form-description-936) (if (unwind-protect (setq value-935 (set
  (let ((value-935 (gensym "ert-form-evaluation-aborted-"))) (let (for
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure ((server)) nil (save-current-buffer (set-buffer (eglot--fin
  funcall((closure ((server)) nil (save-current-buffer (set-buffer (eg
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("foo.cpp" . "#include \"foolib
  (let (server) (eglot--call-with-fixture '(("project" ("foo.cpp" . "#
  (closure (tramp-histfile-override company-candidates typescript-mode
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-same-server-multi-mode :do
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-same-server-multi-mode condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED  29/50  eglot-test-same-server-multi-mode (10.139735 sec) at lis=
p/progmodes/eglot-tests.el:1306
   passed  30/50  eglot-test-server-programs-class-name-and-contact-spec (=
0.017128 sec)
   passed  31/50  eglot-test-server-programs-class-name-and-plist (0.00016=
1 sec)
   passed  32/50  eglot-test-server-programs-executable-multiple-major-mod=
es (0.000165 sec)
   passed  33/50  eglot-test-server-programs-executable-with-arg (0.000158=
 sec)
   passed  34/50  eglot-test-server-programs-executable-with-args-and-auto=
port (0.000167 sec)
   passed  35/50  eglot-test-server-programs-function (0.000157 sec)
   passed  36/50  eglot-test-server-programs-guess-lang (0.000319 sec)
   passed  37/50  eglot-test-server-programs-host-and-port (0.000149 sec)
   passed  38/50  eglot-test-server-programs-host-and-port-and-tcp-args (0=
.000148 sec)
   passed  39/50  eglot-test-server-programs-simple-executable (0.000155 s=
ec)
   passed  40/50  eglot-test-server-programs-simple-missing-executable (0.=
000160 sec)
  skipped  41/50  eglot-test-single-line-eldoc (0.000162 sec)
[eglot-tests] [eglot-test-slow-async-connection]: test start
[eglot] Waiting in background for server `EGLOT (project/(c-mode))'
[eglot-tests] [eglot-test-slow-async-connection]: FAILED
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Non-critical cleanup error: (error "[eglot] -1: Server died"=
)
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) stderr*':
[eglot-tests] contents of `*EGLOT (project/(c-mode)) events*':
[internal] Wed Mar 15 10:20:46 2023:
(:message "Running language server: clangd")
[client-request] (id:1) Wed Mar 15 10:20:46 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePO4VrS/project/" :roo=
tUri "file:///tmp/eglot--fixturePO4VrS/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePO4VrS/project" :name "/tmp/eglo=
t--fixturePO4VrS/project/")]))
[internal] Wed Mar 15 10:20:56 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:17 2023:
(:message "Running language server: sh -c sleep 2 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:17 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturevereoR/project/" :roo=
tUri "file:///tmp/eglot--fixturevereoR/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevereoR/project" :name "/tmp/eglo=
t--fixturevereoR/project/")]))
[client-request] (id:2) Wed Mar 15 10:21:21 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[internal] Wed Mar 15 10:21:24 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixturevereoR, res=
toring nil
Test eglot-test-slow-async-connection backtrace:
  signal(error ("Timed out waiting for test to finish"))
  error("%s" "Timed out waiting for test to finish")
  (progn (error "%s" (concat "Timed out " message)))
  (if (eq retval timed-out) (progn (error "%s" (concat "Timed out " me
  (unwind-protect (setq retval (catch tag (setq timer (run-with-timer
  (let* ((tag (gensym "eglot-test-timeout")) (timed-out (make-symbol "
  eglot--call-with-timeout(3 (closure (company-candidates typescript-m
  (let ((eglot-sync-connect 1) (eglot-server-programs '((c-mode "sh" "
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.c" . "int foo() {re
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-slow-async-connection :doc
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-slow-async-connection condition:
    (error "Timed out waiting for test to finish")
   FAILED  42/50  eglot-test-slow-async-connection (7.049764 sec) at lisp/=
progmodes/eglot-tests.el:938
[eglot-tests] [eglot-test-slow-sync-connection-intime]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-slow-sync-connection-intime]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) stderr*':

Process EGLOT (project/(c-mode)) stderr<1> finished
[eglot-tests] contents of `*EGLOT (project/(c-mode)) events*':
[internal] Wed Mar 15 10:20:46 2023:
(:message "Running language server: clangd")
[client-request] (id:1) Wed Mar 15 10:20:46 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePO4VrS/project/" :roo=
tUri "file:///tmp/eglot--fixturePO4VrS/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePO4VrS/project" :name "/tmp/eglo=
t--fixturePO4VrS/project/")]))
[internal] Wed Mar 15 10:20:56 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:17 2023:
(:message "Running language server: sh -c sleep 2 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:17 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturevereoR/project/" :roo=
tUri "file:///tmp/eglot--fixturevereoR/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevereoR/project" :name "/tmp/eglo=
t--fixturevereoR/project/")]))
[client-request] (id:2) Wed Mar 15 10:21:21 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[internal] Wed Mar 15 10:21:24 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:24 2023:
(:message "Running language server: sh -c sleep 1 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:24 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturergwKZj/project/" :roo=
tUri "file:///tmp/eglot--fixturergwKZj/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturergwKZj/project" :name "/tmp/eglo=
t--fixturergwKZj/project/")]))
[internal] Wed Mar 15 10:21:27 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr<1> finished
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixturergwKZj, res=
toring nil
Test eglot-test-slow-sync-connection-intime backtrace:
  signal(error ("[eglot] Timed out after 3 seconds"))
  error("[eglot] %s" "Timed out after 3 seconds")
  eglot--error("Timed out after 3 seconds")
  eglot--connect((c-mode) (transient . "/tmp/eglot--fixturergwKZj/proj
  apply(eglot--connect ((c-mode) (transient . "/tmp/eglot--fixturergwK
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect(3)
  apply(eglot--tests-connect 3)
  (setq value-476 (apply fn-474 args-475))
  (unwind-protect (setq value-476 (apply fn-474 args-475)) (setq form-
  (if (unwind-protect (setq value-476 (apply fn-474 args-475)) (setq f
  (let (form-description-478) (if (unwind-protect (setq value-476 (app
  (let ((value-476 'ert-form-evaluation-aborted-477)) (let (form-descr
  (let* ((fn-474 #'eglot--tests-connect) (args-475 (condition-case err
  (let ((eglot-sync-connect 2) (eglot-server-programs '((c-mode "sh" "
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.c" . "int foo() {re
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-slow-sync-connection-intim
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-slow-sync-connection-intime condition:
    (error "[eglot] Timed out after 3 seconds")
   FAILED  43/50  eglot-test-slow-sync-connection-intime (3.150838 sec) at=
 lisp/progmodes/eglot-tests.el:926
[eglot-tests] [eglot-test-slow-sync-connection-wait]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-slow-sync-connection-wait]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) stderr*':

Process EGLOT (project/(c-mode)) stderr finished
[eglot-tests] contents of `*EGLOT (project/(c-mode)) events*':
[internal] Wed Mar 15 10:20:46 2023:
(:message "Running language server: clangd")
[client-request] (id:1) Wed Mar 15 10:20:46 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePO4VrS/project/" :roo=
tUri "file:///tmp/eglot--fixturePO4VrS/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePO4VrS/project" :name "/tmp/eglo=
t--fixturePO4VrS/project/")]))
[internal] Wed Mar 15 10:20:56 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:17 2023:
(:message "Running language server: sh -c sleep 2 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:17 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturevereoR/project/" :roo=
tUri "file:///tmp/eglot--fixturevereoR/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevereoR/project" :name "/tmp/eglo=
t--fixturevereoR/project/")]))
[client-request] (id:2) Wed Mar 15 10:21:21 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[internal] Wed Mar 15 10:21:24 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:24 2023:
(:message "Running language server: sh -c sleep 1 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:24 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturergwKZj/project/" :roo=
tUri "file:///tmp/eglot--fixturergwKZj/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturergwKZj/project" :name "/tmp/eglo=
t--fixturergwKZj/project/")]))
[internal] Wed Mar 15 10:21:27 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr<1> finished
[internal] Wed Mar 15 10:21:28 2023:
(:message "Running language server: sh -c sleep 1 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:28 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePSEZX9/project/" :roo=
tUri "file:///tmp/eglot--fixturePSEZX9/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePSEZX9/project" :name "/tmp/eglo=
t--fixturePSEZX9/project/")]))
[internal] Wed Mar 15 10:21:31 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixturePSEZX9, res=
toring nil
Test eglot-test-slow-sync-connection-wait backtrace:
  signal(error ("[eglot] Timed out after 3 seconds"))
  error("[eglot] %s" "Timed out after 3 seconds")
  eglot--error("Timed out after 3 seconds")
  eglot--connect((c-mode) (transient . "/tmp/eglot--fixturePSEZX9/proj
  apply(eglot--connect ((c-mode) (transient . "/tmp/eglot--fixturePSEZ
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect(3)
  apply(eglot--tests-connect 3)
  (setq value-466 (apply fn-464 args-465))
  (unwind-protect (setq value-466 (apply fn-464 args-465)) (setq form-
  (if (unwind-protect (setq value-466 (apply fn-464 args-465)) (setq f
  (let (form-description-468) (if (unwind-protect (setq value-466 (app
  (let ((value-466 'ert-form-evaluation-aborted-467)) (let (form-descr
  (let* ((fn-464 #'eglot--tests-connect) (args-465 (condition-case err
  (let ((eglot-sync-connect t) (eglot-server-programs '((c-mode "sh" "
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("something.c" . "int foo() {re
  (closure (company-candidates typescript-mode-abbrev-table typescript
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-slow-sync-connection-wait
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-slow-sync-connection-wait condition:
    (error "[eglot] Timed out after 3 seconds")
   FAILED  44/50  eglot-test-slow-sync-connection-wait (3.193473 sec) at l=
isp/progmodes/eglot-tests.el:914
[eglot-tests] [eglot-test-slow-sync-timeout]: test start
[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-slow-sync-timeout]: OK
[eglot-tests] Killing (something.c), wiping /tmp/eglot--fixtureqvce4y, res=
toring nil
   passed  45/50  eglot-test-slow-sync-timeout (1.129448 sec)
  skipped  46/50  eglot-test-snippet-completions (0.010595 sec)
  skipped  47/50  eglot-test-snippet-completions-with-company (0.000331 se=
c)
   passed  48/50  eglot-test-strict-interfaces (0.000356 sec)
[eglot-tests] [eglot-test-tramp-test]: test start


[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-tramp-test]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++=
-ts-mode)) stderr*':
[eglot-tests] contents of `*EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) events*':
[internal] Wed Mar 15 10:19:58 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:19:58 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureGOqwaT/project/" :roo=
tUri "file:///tmp/eglot--fixtureGOqwaT/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureGOqwaT/project" :name "/tmp/eglo=
t--fixtureGOqwaT/project/")]))
[internal] Wed Mar 15 10:20:08 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:08 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:08 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturewNlzZp/project/" :roo=
tUri "file:///tmp/eglot--fixturewNlzZp/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturewNlzZp/project" :name "/tmp/eglo=
t--fixturewNlzZp/project/")]))
[internal] Wed Mar 15 10:20:18 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:18 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:18 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturehfF6Pn/project/" :roo=
tUri "file:///tmp/eglot--fixturehfF6Pn/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturehfF6Pn/project" :name "/tmp/eglo=
t--fixturehfF6Pn/project/")]))
[internal] Wed Mar 15 10:20:28 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[internal] Wed Mar 15 10:20:39 2023:
(:message "Running language server: /var/lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:20:39 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureRUxVaa/project/" :roo=
tUri "file:///tmp/eglot--fixtureRUxVaa/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureRUxVaa/project" :name "/tmp/eglo=
t--fixtureRUxVaa/project/")]))
[client-request] (id:2) Wed Mar 15 10:20:42 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[internal] Wed Mar 15 10:20:45 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) s=
tderr finished
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] foo
[stderr] foo
[stderr] foo
[stderr]
[stderr] foo
[stderr] bar
[stderr] nil
[stderr] bar
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] "/dev/pts/5"
[stderr] tramp_exit_status 0
[stderr] nil
[stderr] tramp_exit_status 0
[stderr] "/dev/pts/5"
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] 2090098
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] 2090098
[stderr]
[internal] Wed Mar 15 10:21:33 2023:
(:message "Running language server: /bin/sh -c stty raw > /dev/null; /var/=
lib/snapd/snap/bin/clangd")
[client-request] (id:1) Wed Mar 15 10:21:33 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId nil :rootPath "/tmp/eglot--fixtureMz8x0y/project/" :rootUri=
 "file:///tmp/eglot--fixtureMz8x0y/project" :initializationOptions #s(hash=
-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				  ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration :json-false)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureMz8x0y/project" :name "/mock:gan=
dalf:/tmp/eglot--fixtureMz8x0y/project/")]))
[internal] Wed Mar 15 10:21:43 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[eglot-tests] Killing (coiso.c), wiping /mock:gandalf:/tmp/eglot--fixtureM=
z8x0y, restoring nil
Test eglot-test-tramp-test backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode c-ts-mode c++-mode c++-ts-mode) (transient .
  apply(eglot--connect ((c-mode c-ts-mode c++-mode c++-ts-mode) (trans
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (setq server (eglot--tests-connect))
  (setq value-10 (setq server (eglot--tests-connect)))
  (unwind-protect (setq value-10 (setq server (eglot--tests-connect)))
  (if (unwind-protect (setq value-10 (setq server (eglot--tests-connec
  (let (form-description-11) (if (unwind-protect (setq value-10 (setq
  (let ((value-10 (gensym "ert-form-evaluation-aborted-"))) (let (form
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure ((server)) nil (save-current-buffer (set-buffer (eglot--fin
  funcall((closure ((server)) nil (save-current-buffer (set-buffer (eg
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("coiso.c" . "bla") ("merdix.c"
  (let (server) (eglot--call-with-fixture '(("project" ("coiso.c" . "b
  eglot-tests--auto-detect-running-server-1()
  funcall(eglot-tests--auto-detect-running-server-1)
  (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-
  eglot--call-with-tramp-test(eglot-tests--auto-detect-running-server-
  (closure (tramp-histfile-override company-candidates typescript-mode
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-tramp-test :documentation
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-tramp-test condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED  49/50  eglot-test-tramp-test (10.994329 sec) at lisp/progmodes/=
eglot-tests.el:1289
[eglot-tests] [eglot-test-tramp-test-2]: test start


[jsonrpc] Server exited with status 9
[eglot-tests] [eglot-test-tramp-test-2]: FAILED
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode)) stderr*':
[eglot-tests] contents of `*EGLOT (project/(c-mode)) events*':
[internal] Wed Mar 15 10:20:46 2023:
(:message "Running language server: clangd")
[client-request] (id:1) Wed Mar 15 10:20:46 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePO4VrS/project/" :roo=
tUri "file:///tmp/eglot--fixturePO4VrS/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePO4VrS/project" :name "/tmp/eglo=
t--fixturePO4VrS/project/")]))
[internal] Wed Mar 15 10:20:56 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:17 2023:
(:message "Running language server: sh -c sleep 2 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:17 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturevereoR/project/" :roo=
tUri "file:///tmp/eglot--fixturevereoR/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturevereoR/project" :name "/tmp/eglo=
t--fixturevereoR/project/")]))
[client-request] (id:2) Wed Mar 15 10:21:21 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[internal] Wed Mar 15 10:21:24 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:24 2023:
(:message "Running language server: sh -c sleep 1 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:24 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturergwKZj/project/" :roo=
tUri "file:///tmp/eglot--fixturergwKZj/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturergwKZj/project" :name "/tmp/eglo=
t--fixturergwKZj/project/")]))
[internal] Wed Mar 15 10:21:27 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr<1> finished
[internal] Wed Mar 15 10:21:28 2023:
(:message "Running language server: sh -c sleep 1 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:28 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixturePSEZX9/project/" :roo=
tUri "file:///tmp/eglot--fixturePSEZX9/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturePSEZX9/project" :name "/tmp/eglo=
t--fixturePSEZX9/project/")]))
[internal] Wed Mar 15 10:21:31 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[internal] Wed Mar 15 10:21:31 2023:
(:message "Running language server: sh -c sleep 2 && clangd")
[client-request] (id:1) Wed Mar 15 10:21:31 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId 2017004 :rootPath "/tmp/eglot--fixtureqvce4y/project/" :roo=
tUri "file:///tmp/eglot--fixtureqvce4y/project" :initializationOptions #s(=
hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				      ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration t)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureqvce4y/project" :name "/tmp/eglo=
t--fixtureqvce4y/project/")]))
[internal] Wed Mar 15 10:21:32 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[stderr]
[stderr]
[stderr] nil
[stderr] nil
[stderr] Process EGLOT (project/(c-mode)) stderr finished
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] foo
[stderr] foo
[stderr] foo
[stderr]
[stderr] foo
[stderr] bar
[stderr] nil
[stderr] bar
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] "/dev/pts/5"
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] "/dev/pts/5"
[stderr]
[stderr] nil
[stderr]
[stderr] nil
[stderr]
[stderr] 2098678
[stderr] tramp_exit_status 0
[stderr] nil
[stderr] tramp_exit_status 0
[stderr] 2098678
[stderr]
[internal] Wed Mar 15 10:21:44 2023:
(:message "Running language server: /bin/sh -c stty raw > /dev/null; clang=
d")
[client-request] (id:1) Wed Mar 15 10:21:44 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId nil :rootPath "/tmp/eglot--fixtureNbu0m1/project/" :rootUri=
 "file:///tmp/eglot--fixtureNbu0m1/project" :initializationOptions #s(hash=
-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				  ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration :json-false)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :did=
Save t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSuppo=
rt
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t =
:symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2=
4 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refacto=
r.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :t=
agSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehas=
h-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixtureNbu0m1/project" :name "/mock:gan=
dalf:/tmp/eglot--fixtureNbu0m1/project/")]))
[internal] Wed Mar 15 10:21:54 2023:
(:message "Connection state changed" :change "killed\n")

=2D---------b---y---e---b---y---e----------
[eglot-tests] Killing (foo.c), wiping /mock:gandalf:/tmp/eglot--fixtureNbu=
0m1, restoring nil
Test eglot-test-tramp-test-2 backtrace:
  signal(error ("[eglot] Timed out after 10 seconds"))
  error("[eglot] %s" "Timed out after 10 seconds")
  eglot--error("Timed out after 10 seconds")
  eglot--connect((c-mode) (transient . "/mock:gandalf:/tmp/eglot--fixt
  apply(eglot--connect ((c-mode) (transient . "/mock:gandalf:/tmp/eglo
  (let* ((timeout (or timeout 10)) (eglot-sync-connect t) (eglot-conne
  eglot--tests-connect()
  (let (c-notifs) (advice-add #'jsonrpc--log-event :before #'(lambda (
  (unwind-protect (let (c-notifs) (advice-add #'jsonrpc--log-event :be
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (let ((eglot-server-programs '((c-mode "clangd")))) (save-current-bu
  (closure (company-candidates typescript-mode-abbrev-table typescript
  funcall((closure (company-candidates typescript-mode-abbrev-table ty
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("foo.c" . "const char write_da
  eglot-tests--lsp-abiding-column-1()
  funcall(eglot-tests--lsp-abiding-column-1)
  (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-
  eglot--call-with-tramp-test(eglot-tests--lsp-abiding-column-1)
  (closure (tramp-histfile-override company-candidates typescript-mode
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-tramp-test-2 :documentatio
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
  ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
  ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
  eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-tramp-test-2 condition:
    (error "[eglot] Timed out after 10 seconds")
   FAILED  50/50  eglot-test-tramp-test-2 (10.629741 sec) at lisp/progmode=
s/eglot-tests.el:1294

Ran 50 tests, 17 results as expected, 14 unexpected, 19 skipped (2023-03-1=
5 10:21:54+0100, 116.658086 sec)

14 unexpected results:
   FAILED  eglot-test-auto-detect-running-server
   FAILED  eglot-test-auto-reconnect
   FAILED  eglot-test-auto-shutdown
   FAILED  eglot-test-basic-diagnostics
   FAILED  eglot-test-diagnostic-tags-unnecessary-code
   FAILED  eglot-test-ensure
   FAILED  eglot-test-lsp-abiding-column
   FAILED  eglot-test-rename-a-symbol
   FAILED  eglot-test-same-server-multi-mode
   FAILED  eglot-test-slow-async-connection
   FAILED  eglot-test-slow-sync-connection-intime
   FAILED  eglot-test-slow-sync-connection-wait
   FAILED  eglot-test-tramp-test
   FAILED  eglot-test-tramp-test-2

19 skipped results:
  SKIPPED  eglot-test-basic-completions
  SKIPPED  eglot-test-basic-xref
  SKIPPED  eglot-test-eclipse-connect
  SKIPPED  eglot-test-eldoc-after-completions
  SKIPPED  eglot-test-javascript-basic
  SKIPPED  eglot-test-json-basic
  SKIPPED  eglot-test-multiline-eldoc
  SKIPPED  eglot-test-non-unique-completions
  SKIPPED  eglot-test-path-to-uri-windows
  SKIPPED  eglot-test-project-wide-diagnostics-rust-analyzer
  SKIPPED  eglot-test-project-wide-diagnostics-typescript
  SKIPPED  eglot-test-python-autopep-formatting
  SKIPPED  eglot-test-python-yapf-formatting
  SKIPPED  eglot-test-rust-analyzer-hover-after-edit
  SKIPPED  eglot-test-rust-analyzer-watches-files
  SKIPPED  eglot-test-rust-on-type-formatting
  SKIPPED  eglot-test-single-line-eldoc
  SKIPPED  eglot-test-snippet-completions
  SKIPPED  eglot-test-snippet-completions-with-company


--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 14 Mar 2023 23:06:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 14 19:06:30 2023
Received: from localhost ([127.0.0.1]:38607 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pcDiv-0007Md-Pz
	for submit <at> debbugs.gnu.org; Tue, 14 Mar 2023 19:06:30 -0400
Received: from lists.gnu.org ([209.51.188.17]:44354)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <joaotavora@HIDDEN>) id 1pcDis-0007MQ-Vw
 for submit <at> debbugs.gnu.org; Tue, 14 Mar 2023 19:06:28 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <joaotavora@HIDDEN>)
 id 1pcDis-0006wn-OF
 for bug-gnu-emacs@HIDDEN; Tue, 14 Mar 2023 19:06:26 -0400
Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <joaotavora@HIDDEN>)
 id 1pcDip-00063m-Ti
 for bug-gnu-emacs@HIDDEN; Tue, 14 Mar 2023 19:06:26 -0400
Received: by mail-wr1-x434.google.com with SMTP id o7so6396512wrg.5
 for <bug-gnu-emacs@HIDDEN>; Tue, 14 Mar 2023 16:06:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20210112; t=1678835179;
 h=content-transfer-encoding:mime-version:message-id:date:subject:to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=QtA7tNUctW1Nl65YTYeL4PYPrCFRafAUqAGGNgRYN3A=;
 b=LWrjBZUXKze4wE973qV4Zi0gMsWAbR0dSiz097jFr40Ous8yGy4kpLdvW3B+5ctNyH
 K6m755DF/MDWUR5KI1Ma5HfV4Pl6qNi3uucXiEuoir+eeB0FpJEeze+PUuDzAWX31l1Z
 pt6sgz2KR/v1nwNRY94r/EYyl3bPZcnuHt+3rJiqm+00cmZX3ZcO0lmzF47tbJP0W3Jc
 o21C2K/UEFOYQCzmSsd0jJ5yFwB6nLH+OlwhOe6LDONBdh0mdj90oFoMwRUCPN3tuc6J
 0nYWxeOrUSqkMfngosI9brEjJFxLIcwMPPfYr54Kbu0WJ0rEdyxdJNShieuMkD0wHZNf
 Iw/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112; t=1678835179;
 h=content-transfer-encoding:mime-version:message-id:date:subject:to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=QtA7tNUctW1Nl65YTYeL4PYPrCFRafAUqAGGNgRYN3A=;
 b=lbdtxi8pD2E8fB6ZLxflIv2n6OZLUczvHw5A143aTcwmPq8XucLzkgIN9BMowjd+2n
 65rSsMt+t1cS0j5RqnA45L3NkpETNZp6PR1RYBhgpiERqILC3BexVmrWcEIGScQnrr+L
 SHNgTJxuR+MR+tMC761ewt1XmpSjfgLTbeqBi2V99GXuWSWVKJgHtR245L3NPXX5TeVh
 UX8ddnGK08rQ6n8oWpWSGgrUP0C5+J2t/x6gpxbe4cEPbxd63CjZYO2kaJmjNXFDl+qN
 /XtP51N4iLXarxky14twft1Hu0hWlgnm2ARNIwLrZf/60Ry0qEGDVT6jxDScc/dwzuK3
 7iuw==
X-Gm-Message-State: AO0yUKUGJcQT09bFg03WQHSZ77VClMH/+fV/S1Lyj0+b51D0gXeh7x8a
 ofPJ3NXvwqoDA9l217qaKIA+DkoTO1s=
X-Google-Smtp-Source: AK7set870wBK6WZITEOAt93BU1U1SNcu3bxpYHUSxC6qyZYl4yPgPPMrh2S1YyTSh5cbFHqAFHVYiQ==
X-Received: by 2002:adf:f08f:0:b0:2cf:e656:8563 with SMTP id
 n15-20020adff08f000000b002cfe6568563mr448531wro.30.1678835178434; 
 Tue, 14 Mar 2023 16:06:18 -0700 (PDT)
Received: from krug (87-196-72-142.net.novis.pt. [87.196.72.142])
 by smtp.gmail.com with ESMTPSA id
 bd20-20020a05600c1f1400b003e21dcccf9fsm3257wmb.16.2023.03.14.16.06.17
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 14 Mar 2023 16:06:18 -0700 (PDT)
From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= <joaotavora@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 30.0.50; Two Eglot-over-Tramp tests are failing on master, passing
 on emacs-29
X-Debbugs-Cc: Michael Albinus <michael.albinus@HIDDEN>
Date: Tue, 14 Mar 2023 23:08:17 +0000
Message-ID: <87wn3jue1q.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=2a00:1450:4864:20::434;
 envelope-from=joaotavora@HIDDEN; helo=mail-wr1-x434.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 <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

Hi Michael,

I've noticd that these two Eglot tests are passing on emacs-29 but
failing on emacs master.  I haven't checked if this is due to your
recent work on Tramp or some other factor.

Sometimes one of the tests passes, but having the two of them pass is
rare.  In emacs-29, they always pass.  Both emacs-master and emacs-29
have the version of Eglot _with_ the ControlMaster-neutering workaround.

To reproduce, you need the "clangd" language server installed (which is
one of the easiest to get language servers, should be available in your
package manager).

Then:

   make -C test lisp/progmodes/eglot-tests SELECTOR=3D\"tramp\"

The error output is after my sig.  Let me know if you need more info.

Jo=C3=A3o

make: Entering directory '/home/capitaomorte/Source/Emacs/emacs-master/test'
make[1]: Entering directory '/home/capitaomorte/Source/Emacs/emacs-master/t=
est'
  GEN      lisp/progmodes/eglot-tests.log
Running 2 tests (2023-03-14 23:04:34+0000, selector =E2=80=98"tramp"=E2=80=
=99)
[eglot-tests] [eglot-test-tramp-test]: test start


[eglot] Connected! Server `clangd' now managing `(c-mode c-ts-mode c++-mode=
 c++-ts-mode)' buffers in project `project'.

File error: Couldn=E2=80=99t find exit status of =E2=80=98\readlink --canon=
icalize-missing /tmp/eglot--fixturezQyQYv/project/merdix.c=E2=80=99

[eglot-tests] [eglot-test-tramp-test]: FAILED
[eglot] Asking EGLOT (project/(c-mode c-ts-mode c++-mode c++-ts-mode)) poli=
tely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) output*':
[eglot-tests] contents of ` *EGLOT (project/(c-mode c-ts-mode c++-mode c++-=
ts-mode)) stderr*':
I[23:04:35.143] clangd version 15.0.7
I[23:04:35.143] Features: linux
I[23:04:35.143] PID: 251491
I[23:04:35.143] Working directory: /tmp/eglot--fixturezQyQYv/project
I[23:04:35.143] argv[0]: /usr/bin/clangd
I[23:04:35.143] Starting LSP over stdin/stdout
I[23:04:35.143] <-- initialize(1)
I[23:04:35.144] --> reply:initialize(1) 0 ms
I[23:04:35.145] <-- initialized
I[23:04:35.153] <-- textDocument/didOpen
I[23:04:35.153] <-- workspace/didChangeConfiguration
I[23:04:35.153] Failed to find compilation database for /tmp/eglot--fixture=
zQyQYv/project/coiso.c
I[23:04:35.153] ASTWorker building file /tmp/eglot--fixturezQyQYv/project/c=
oiso.c version 0 with command clangd fallback
[/tmp/eglot--fixturezQyQYv/project]
/usr/bin/clang -resource-dir=3D/usr/lib/clang/15.0.7 -- /tmp/eglot--fixture=
zQyQYv/project/coiso.c
I[23:04:35.163] --> textDocument/publishDiagnostics
I[23:04:35.184] <-- textDocument/didOpen
I[23:04:35.184] Failed to find compilation database for /tmp/eglot--fixture=
zQyQYv/project/merdix.c
I[23:04:35.184] ASTWorker building file /tmp/eglot--fixturezQyQYv/project/m=
erdix.c version 0 with command clangd fallback
[/tmp/eglot--fixturezQyQYv/project]
/usr/bin/clang -resource-dir=3D/usr/lib/clang/15.0.7 -- /tmp/eglot--fixture=
zQyQYv/project/merdix.c
I[23:04:35.194] --> textDocument/publishDiagnostics
I[23:04:35.274] <-- shutdown(2)
I[23:04:35.274] --> reply:shutdown(2) 0 ms
I[23:04:35.274] <-- exit
I[23:04:35.274] LSP finished, exiting with status 0
[eglot-tests] contents of `*EGLOT (project/(c-mode c-ts-mode c++-mode c++-t=
s-mode)) events*':
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] foo
[stderr] foo
[stderr] foo
[stderr]=20
[stderr] foo
[stderr] bar
[stderr] nil
[stderr] bar
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] "/dev/pts/8"
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] "/dev/pts/8"
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] nil
[stderr]=20
[stderr] 251483
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] tramp_exit_status 0
[stderr] 251483
[stderr]=20
[internal] Tue Mar 14 23:04:35 2023:
(:message "Running language server: /bin/sh -c stty raw > /dev/null; /usr/b=
in/clangd")
[client-request] (id:1) Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
	  (:processId nil :rootPath "/tmp/eglot--fixturezQyQYv/project/" :rootUri =
"file:///tmp/eglot--fixturezQyQYv/project" :initializationOptions #s(hash-t=
able size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
																				  ())
		      :capabilities
		      (:workspace
		       (:applyEdit t :executeCommand
				   (:dynamicRegistration :json-false)
				   :workspaceEdit
				   (:documentChanges t)
				   :didChangeWatchedFiles
				   (:dynamicRegistration :json-false)
				   :symbol
				   (:dynamicRegistration :json-false)
				   :configuration t :workspaceFolders t)
		       :textDocument
		       (:synchronization
			(:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didS=
ave t)
			:completion
			(:dynamicRegistration :json-false :completionItem
					      (:snippetSupport :json-false :deprecatedSupport t :resolveSupport
							       (:properties
								["documentation" "details" "additionalTextEdits"])
							       :tagSupport
							       (:valueSet
								[1]))
					      :contextSupport t)
			:hover
			(:dynamicRegistration :json-false :contentFormat
					      ["plaintext"])
			:signatureHelp
			(:dynamicRegistration :json-false :signatureInformation
					      (:parameterInformation
					       (:labelOffsetSupport t)
					       :activeParameterSupport t))
			:references
			(:dynamicRegistration :json-false)
			:definition
			(:dynamicRegistration :json-false :linkSupport t)
			:declaration
			(:dynamicRegistration :json-false :linkSupport t)
			:implementation
			(:dynamicRegistration :json-false :linkSupport t)
			:typeDefinition
			(:dynamicRegistration :json-false :linkSupport t)
			:documentSymbol
			(:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :=
symbolKind
					      (:valueSet
					       [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24=
 25 26]))
			:documentHighlight
			(:dynamicRegistration :json-false)
			:codeAction
			(:dynamicRegistration :json-false :codeActionLiteralSupport
					      (:codeActionKind
					       (:valueSet
						["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor=
.rewrite" "source" "source.organizeImports"]))
					      :isPreferredSupport t)
			:formatting
			(:dynamicRegistration :json-false)
			:rangeFormatting
			(:dynamicRegistration :json-false)
			:rename
			(:dynamicRegistration :json-false)
			:inlayHint
			(:dynamicRegistration :json-false)
			:publishDiagnostics
			(:relatedInformation :json-false :codeDescriptionSupport :json-false :ta=
gSupport
					     (:valueSet
					      [1 2])))
		       :general
		       (:positionEncodings
			["utf-32" "utf-8" "utf-16"])
		       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash=
-threshold 0.8125 data
						   ()))
		      :workspaceFolders
		      [(:uri "file:///tmp/eglot--fixturezQyQYv/project" :name "/mock:krug=
:/tmp/eglot--fixturezQyQYv/project/")]))
[stderr] I[23:04:35.143] clangd version 15.0.7
[stderr] I[23:04:35.143] Features: linux
[stderr] I[23:04:35.143] PID: 251491
[stderr] I[23:04:35.143] Working directory: /tmp/eglot--fixturezQyQYv/proje=
ct
[stderr] I[23:04:35.143] argv[0]: /usr/bin/clangd
[stderr] I[23:04:35.143] Starting LSP over stdin/stdout
[stderr] I[23:04:35.143] <-- initialize(1)
[server-reply] (id:1) Tue Mar 14 23:04:35 2023:
(:id 1 :jsonrpc "2.0" :result
     (:capabilities
      (:astProvider t :callHierarchyProvider t :clangdInlayHintsProvider t =
:codeActionProvider
		    (:codeActionKinds
		     ["quickfix" "refactor" "info"])
		    :compilationDatabase
		    (:automaticReload t)
		    :completionProvider
		    (:resolveProvider :json-false :triggerCharacters
				      ["." "<" ">" ":" "\"" "/" "*"])
		    :declarationProvider t :definitionProvider t :documentFormattingProvi=
der t :documentHighlightProvider t :documentLinkProvider
		    (:resolveProvider :json-false)
		    :documentOnTypeFormattingProvider
		    (:firstTriggerCharacter "\n" :moreTriggerCharacter
					    [])
		    :documentRangeFormattingProvider t :documentSymbolProvider t :execute=
CommandProvider
		    (:commands
		     ["clangd.applyFix" "clangd.applyTweak"])
		    :hoverProvider t :implementationProvider t :inlayHintProvider t :memo=
ryUsageProvider t :referencesProvider t :renameProvider t :selectionRangePr=
ovider t :semanticTokensProvider
		    (:full
		     (:delta t)
		     :legend
		     (:tokenModifiers
		      ["declaration" "deprecated" "deduced" "readonly" "static" "abstract=
" "virtual" "dependentName" "defaultLibrary" "usedAsMutableReference" "func=
tionScope" "classScope" "fileScope" "globalScope"]
		      :tokenTypes
		      ["variable" "variable" "parameter" "function" "method" "function" "=
property" "variable" "class" "interface" "enum" "enumMember" "type" "type" =
"unknown" "namespace" "typeParameter" "concept" "type" "macro" "comment"])
		     :range :json-false)
		    :signatureHelpProvider
		    (:triggerCharacters
		     ["(" ")" "{" "}" "<" ">" ","])
		    :standardTypeHierarchyProvider t :textDocumentSync
		    (:change 2 :openClose t :save t)
		    :typeDefinitionProvider t :typeHierarchyProvider t :workspaceSymbolPr=
ovider t)
      :serverInfo
      (:name "clangd" :version "clangd version 15.0.7 linux x86_64-pc-linux=
-gnu")))
[client-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql=
 rehash-size 1.5 rehash-threshold 0.8125 data
							    ()))
[stderr] I[23:04:35.144] --> reply:initialize(1) 0 ms
[stderr] I[23:04:35.145] <-- initialized
[client-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturezQyQYv/project/coiso.c" :version 0 :la=
nguageId "c" :text "bla")))
[client-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
	  (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshol=
d 0.8125 data
				   ())))
[stderr] I[23:04:35.153] <-- textDocument/didOpen
[stderr] I[23:04:35.153] <-- workspace/didChangeConfiguration
[stderr] I[23:04:35.153] Failed to find compilation database for /tmp/eglot=
--fixturezQyQYv/project/coiso.c
[stderr] I[23:04:35.153] ASTWorker building file /tmp/eglot--fixturezQyQYv/=
project/coiso.c version 0 with command clangd fallback
[stderr] [/tmp/eglot--fixturezQyQYv/project]
[stderr] /usr/bin/clang -resource-dir=3D/usr/lib/clang/15.0.7 -- /tmp/eglot=
--fixturezQyQYv/project/coiso.c
[server-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:diagnostics
	   [(:code "unknown_typename" :message "Unknown type name 'bla'" :range
		   (:end
		    (:character 3 :line 0)
		    :start
		    (:character 0 :line 0))
		   :severity 1 :source "clang")
	    (:code "expected_either" :message "Expected identifier or '('" :range
		   (:end
		    (:character 3 :line 0)
		    :start
		    (:character 3 :line 0))
		   :severity 1 :source "clang")]
	   :uri "file:///tmp/eglot--fixturezQyQYv/project/coiso.c" :version 0))
[stderr] I[23:04:35.163] --> textDocument/publishDiagnostics
[client-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
	  (:textDocument
	   (:uri "file:///tmp/eglot--fixturezQyQYv/project/merdix.c" :version 0 :l=
anguageId "c" :text "bla")))
[stderr] I[23:04:35.184] <-- textDocument/didOpen
[stderr] I[23:04:35.184] Failed to find compilation database for /tmp/eglot=
--fixturezQyQYv/project/merdix.c
[stderr] I[23:04:35.184] ASTWorker building file /tmp/eglot--fixturezQyQYv/=
project/merdix.c version 0 with command clangd fallback
[stderr] [/tmp/eglot--fixturezQyQYv/project]
[stderr] /usr/bin/clang -resource-dir=3D/usr/lib/clang/15.0.7 -- /tmp/eglot=
--fixturezQyQYv/project/merdix.c
[server-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
	  (:diagnostics
	   [(:code "unknown_typename" :message "Unknown type name 'bla'" :range
		   (:end
		    (:character 3 :line 0)
		    :start
		    (:character 0 :line 0))
		   :severity 1 :source "clang")
	    (:code "expected_either" :message "Expected identifier or '('" :range
		   (:end
		    (:character 3 :line 0)
		    :start
		    (:character 3 :line 0))
		   :severity 1 :source "clang")]
	   :uri "file:///tmp/eglot--fixturezQyQYv/project/merdix.c" :version 0))
[stderr] I[23:04:35.194] --> textDocument/publishDiagnostics
[client-request] (id:2) Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :id 2 :method "shutdown" :params nil)
[server-reply] (id:2) Tue Mar 14 23:04:35 2023:
(:id 2 :jsonrpc "2.0" :result nil)
[client-notification] Tue Mar 14 23:04:35 2023:
(:jsonrpc "2.0" :method "exit" :params nil)
[internal] Tue Mar 14 23:04:35 2023:
(:message "Connection state changed" :change "killed\n")

----------b---y---e---b---y---e----------
[stderr] I[23:04:35.274] <-- shutdown(2)
[stderr] I[23:04:35.274] --> reply:shutdown(2) 0 ms
[stderr] I[23:04:35.274] <-- exit
[stderr] I[23:04:35.274] LSP finished, exiting with status 0
[eglot-tests] Killing (coiso.c merdix.c), wiping /mock:krug:/tmp/eglot--fix=
turezQyQYv, restoring nil
Test eglot-test-tramp-test backtrace:
  signal(wrong-type-argument ("listp /tmp/tramp.G0HtZ3"))
  tramp-error((tramp-file-name "mock" nil nil "krug" nil "/tmp/eglot--
  tramp-signal-hook-function(wrong-type-argument ("listp /tmp/tramp.G0
  signal(wrong-type-argument ("listp /tmp/tramp.G0HtZ3"))
  tramp-handle-insert-file-contents("/mock:krug:/tmp/eglot--fixturezQy
  apply(tramp-handle-insert-file-contents ("/mock:krug:/tmp/eglot--fix
  tramp-sh-file-name-handler(insert-file-contents "/mock:krug:/tmp/egl
  apply(tramp-sh-file-name-handler insert-file-contents ("/mock:krug:/
  tramp-file-name-handler(insert-file-contents "/mock:krug:/tmp/eglot-
  insert-file-contents("/mock:krug:/tmp/eglot--fixturezQyQYv/project/R
  vc-insert-file("/mock:krug:/tmp/eglot--fixturezQyQYv/project/RCS/m..
  vc-rcs-fetch-master-state("/mock:krug:/tmp/eglot--fixturezQyQYv/proj
  vc-rcs-state("/mock:krug:/tmp/eglot--fixturezQyQYv/project/merdi..."
  apply(vc-rcs-state "/mock:krug:/tmp/eglot--fixturezQyQYv/project/mer
  vc-call-backend(RCS state "/mock:krug:/tmp/eglot--fixturezQyQYv/proj
  vc-state-refresh("/mock:krug:/tmp/eglot--fixturezQyQYv/project/merdi
  vc-state("/mock:krug:/tmp/eglot--fixturezQyQYv/project/merdi..." RCS
  vc-rcs-find-file-hook()
  apply(vc-rcs-find-file-hook nil)
  vc-call-backend(RCS find-file-hook)
  vc-refresh-state()
  run-hooks(find-file-hook)
  after-find-file(nil t)
  find-file-noselect-1(#<killed buffer> "/mock:krug:/tmp/eglot--fixtur
  find-file-noselect("project/merdix.c")
  eglot--find-file-noselect("project/merdix.c")
  (set-buffer (eglot--find-file-noselect "project/merdix.c"))
  (save-current-buffer (set-buffer (eglot--find-file-noselect "project
  (closure ((server . #<eglot-lsp-server eglot-lsp-server-15755b2a4d56
  funcall((closure ((server . #<eglot-lsp-server eglot-lsp-server-1575
  (prog1 (funcall fn) (setq test-body-successful-p t))
  (let* ((process-environment (append (list "XDG_CONFIG_HOME=3D/dev/null
  (unwind-protect (let* ((process-environment (append (list "XDG_CONFI
  (let* ((fixture-directory (make-nearby-temp-file "eglot--fixture" t)
  eglot--call-with-fixture((("project" ("coiso.c" . "bla") ("merdix.c"
  (let (server) (eglot--call-with-fixture '(("project" ("coiso.c" . "b
  eglot-tests--auto-detect-running-server-1()
  funcall(eglot-tests--auto-detect-running-server-1)
  (let* ((tramp-remote-path (cons 'tramp-own-remote-path tramp-remote-
  eglot--call-with-tramp-test(eglot-tests--auto-detect-running-server-
  (closure (tramp-histfile-override company-candidates typescript-mode
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name eglot-test-tramp-test :documentation=20
  ert-run-or-rerun-test(#s(ert--stats :selector "tramp" :tests ... :te
  ert-run-tests("tramp" #f(compiled-function (event-type &rest event-a
  ert-run-tests-batch("tramp")
  ert-run-tests-batch-and-exit("tramp")
  eval((ert-run-tests-batch-and-exit '"tramp") t)
  command-line-1(("-L" ":." "-l" "ert" "-l" "lisp/progmodes/eglot-test
  command-line()
  normal-top-level()
Test eglot-test-tramp-test condition:
    (wrong-type-argument "listp /tmp/tramp.G0HtZ3")
   FAILED  1/2  eglot-test-tramp-test (0.744733 sec) at lisp/progmodes/eglo=
t-tests.el:1285
[eglot-tests] [eglot-test-tramp-test-2]: test start


[eglot] Connected! Server `clangd' now managing `(c-mode)' buffers in proje=
ct `project'.
[eglot-tests] waiting for `(should (equal 71 (cadddr (cadadr (aref (cadddr =
params) 0)))))'
[eglot-tests] detected: textDocument/didChange
[eglot-tests] [eglot-test-tramp-test-2]: OK
[eglot] Asking EGLOT (project/(c-mode)) politely to terminate
[jsonrpc] Server exited with status 9
[eglot-tests] Killing (foo.c), wiping /mock:krug:/tmp/eglot--fixtureQ3JgHX,=
 restoring nil
File is missing: /mock:krug:/tmp/eglot--fixtureQ3JgHX/project/foo.c~
   passed  2/2  eglot-test-tramp-test-2 (0.618120 sec)

Ran 2 tests, 1 results as expected, 1 unexpected (2023-03-14 23:04:36+0000,=
 1.444125 sec)

1 unexpected results:
   FAILED  eglot-test-tramp-test

make[1]: *** [Makefile:174: lisp/progmodes/eglot-tests.log] Error 1
make[1]: Leaving directory '/home/capitaomorte/Source/Emacs/emacs-master/te=
st'
make: *** [Makefile:240: lisp/progmodes/eglot-tests] Error 2
make: Leaving directory '/home/capitaomorte/Source/Emacs/emacs-master/test'






Acknowledgement sent to João Távora <joaotavora@HIDDEN>:
New bug report received and forwarded. Copy sent to michael.albinus@HIDDEN, bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to michael.albinus@HIDDEN, bug-gnu-emacs@HIDDEN:
bug#62194; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 18 Mar 2023 11:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.