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

From: Konstantin Kharlamov <[email-masked]>
Date: Tue, 11 Mar 2025 22:28:47 +0300

On Tue, 2025-03-11 at 20:22 +0100, Michael Albinus wrote:
> 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---

Thanks! Note though that your workaround is about disabling cache for
tramp globally, so isn't useful. But thanks anyway 😊