Subject: bug#78572: 30.1; Tramp Project error message loop - File is missing

From: Michael Albinus <[email-masked]>
Date: Sun, 25 May 2025 16:49:13 +0200

Alexis Bakatine <[email-masked]> writes:

> Hi Michael, thanks for the reply.

Hi Alexis,

>>Could you please provide a step-by-step recipe for reproducing the problem?
>
> Surely. In your init.el, only have:
>
> (require 'project)
> (setopt project-vc-extra-root-markers '(".project"))
> (setopt project-mode-line t)

As said in my first reply, I have tried exactly the same from the
command line:

--8<---------------cut here---------------start------------->8---
# emacs -Q -l project --eval '(setopt project-vc-extra-root-markers (quote (".project")))' --eval '(setopt project-mode-line t)' '/ssh:ubuntu-2404|sudo::'
--8<---------------cut here---------------end--------------->8---

The only difference is, that I use the host "ubuntu-2404" (a VM in my
local net) instead of "x". It works as expected.

Emacs is the prerelase of Emacs 30.2, called "30.1.90". Perhaps this
makes a difference? I remember seeing bug reports wrt to project and
tramp, but I don't know the details. If you can compile this yourself,
it would help for checking.

> After that, do:
> C-x C-f /ssh:x|sudo::
>
> Then wait a couple minutes for the Tramp session to automatically timeout.
>
> Now it becomes difficult to get the exact same bug behavior all the time.
> Sometimes it only prints "File is missing: /sudo:root@x:/root/" constantly in the *Messages* buffer, and some other time it also prints a full debug backtrace over and over like in my first email.
>
> As well, after the Tramp session expires, when you do <RET> to open a file in the Tramp dired buffer, Emacs crashes instantly, and I'm forced to kill the Emacs process externally.

So could you please call from the sehll (replace "x" by the real hostname)

--8<---------------cut here---------------start------------->8---
# emacs -Q -l project --eval '(setopt project-vc-extra-root-markers (quote (".project")))' --eval '(setopt project-mode-line t)' --eval '(setq tramp-verbose 10 tramp-debug-to-file t)' '/ssh:x|sudo::' 
--8<---------------cut here---------------end--------------->8---

When Emacs has finished (or crashed), there will be a file *debug tramp
sudo root@x* in either the ~/.cache/emacs/ /tmp/ directory. Pls send it.

Best regards, Michael.