Subject: bug#76950: tramp caches non-existing podman containers

From: Michael Albinus <[email-masked]>
Date: Tue, 11 Mar 2025 20:22:47 +0100

Konstantin Kharlamov <[email-masked]> writes:

Hi Konstantin,

> When tramp is used to connect to a container, it provides completion
> based on what containers are currently running. However, after
> containers exit, the completion annoyingly still enlists those dead
> containers.
>
> # Steps to reproduce
>
> 1. Run any container, e.g.: `podman run --rm -it ubuntu:24.04`
> 2. Start Emacs as `emacs -Q --eval "(require 'tramp)"`
> 3. Press `C-x C-f /podman:`, then press TAB to complete the minibuffer
> text to container name (it should get completed).
> 4. Cancel with C-g
> 5. Exit the container
> 6. Repeat step 3
>
> ## Expected
>
> You'd get no completion because no containers are running.
>
> ## Actual
>
> You'd get completion for the non-existing container.

See the Tramp manual, (info "(tramp) File name completion")

--8<---------------cut here---------------start------------->8---
   Remote hosts previously visited or hosts whose connections are kept
persistently (*note Connection caching::) will be included in the
completion lists.  If you want to suppress this completion because there
are invalid entries in the persistency file, for example if the host
configuration changes often, or if you plug your laptop to different
networks frequently, you can set the user option
‘tramp-completion-use-cache’ to ‘nil’.
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.