Subject: bug#61663: 30.0.50; TRAMP: (kill-buffer) sometimes cannot kill modified buffer without re-establishing a connection

From: Michael Albinus <[email-masked]>
Date: Sun, 26 Feb 2023 15:45:35 +0100

Dima Kogan <[email-masked]> writes:

> Hi.

Hi Dima,

> This happens with a bleeding-edge emacs. I'm using a yubikey-based
> ssh key, so I need to enter a passphrase and touch the yubikey to unlock
> the ssh key. It looks like TRAMP is requiring this interaction even when
> it shouldn't.
>
> 1. emacs -Q
>
> 2. C-x C-f /ssh:server:file
>
>    We open some remote file using TRAMP. This is a new ssh connection,
>    so I must enter the passphrase and touch the yubikey.
>
> 3. Modify the buffer by typing something into it. Do not save
>
> 4. Break the ssh link. One way is to M-x tramp-cleanup-this-connection
>
> 5. Try to kill the buffer with C-x k. Emacs says something like "Buffer
>    modified. Kill anyway?" I say "yes". I would expect emacs to throw
>    away the modified buffer. Instead it tries to re-establish the
>    network connection to (presumably) do some cleanup. This requires the
>    yubikey auth again. If I don't follow through the passphrase,
>    touching prompts by pressing C-g, the modified buffer sticks around,
>    and there doesn't appear to be any way to kill it.
>
> With a "normal" ssh key, without a yubikey TRAMP still tries to
> re-establish the network connection here. But it quickly fails, and the
> (kill-buffer) still succeeds. With a yubikey it fails when I kill it and
> the (kill-buffer) fails too. TRAMP shouldn't be trying to re-establish
> the connection here probably.

When the buffer is modified, kill-buffer tries to unlock the respective
file. I've modified tramp-handle-unlock-file such a way that it ceases
to work when the connection is broken.

Pushed to master. Could you, pls, check?

> Thanks!

Best regards, Michael.