Subject: Re: bug#71200: TRAMP: Trying to do a project-find-file or (find-directory) using the podman method causes a (wrong-type-argument stringp nil) error

From: Michael Albinus <[email-masked]>
Date: Thu, 30 May 2024 10:47:10 +0200

Dmitry Gutov <[email-masked]> writes:

> Hi Michael,

Hi Dmitry,

> Replying in private, just in case.

No, this can be discussed publicly :-)

>>> I really apologize for not checking this earlier, but it didn't occur
>>> to me to test this, it came up naturally: if you try to enter a
>>> distrobox that doesn't exist, Emacs will hang and peg one CPU until
>>> you hit C-g. But yes I think this bug can be closed for sure
>> Well, I don't believe it is up to Tramp to check it. For all
>> container-based methods it is requested that the respective container
>> is running. In case of toolbox and distrobox, it is sufficient that the
>> container is created. If not running, it is started then.
>
> Sorry to butt in, but it seems the 'docker' transport does some
> checking. At least if I enter /docker:asdfg:RET RET (the second one to
> confirm), it shows me the error rather quickly:
>
>   Error response from daemon: No such container: asdf
>
> I guess it might be considered an implementation detail, though.

Yes, it always depends on the used client program. I'm on Fedora, so I
use the podman case as example.

--8<---------------cut here---------------start------------->8---
# podman exec -it asdf /bin/sh  -i
Error: no container with name or ID "asdf" found: no such container
--8<---------------cut here---------------end--------------->8---

podman returns immediately, and Tramp sees the failed process. But it
doesn't check anything for the error message.

--8<---------------cut here---------------start------------->8---
# distrobox enter -n asdf -- /bin/sh  -i
Error: no such container asdf
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:39? [Y/n]:
--8<---------------cut here---------------end--------------->8---

distrobox fails as well, but then it asks interactively how to
continue. That's why Emacs is in an infinite loop. Again, such an error
isn't checked from Tramp yet.

Well, I have added a check to Tramp, this is detected now. Pushed to the
repositories.

Best regards, Michael.