Thanks. I suggest also adding a simple "version" to the cache. Whenever you make an incompatible change in the future, bump this version. And also make Tramp automatically discard all cached values when they come from a different (earlier or even a later) version. Otherwise something like this will certainly happen again sooner or later and will cost both the person bumping into it and you or whoever responds to the bugreport a lot of time again.

Paul

On Fri, 30 Sept 2022 at 21:58, Michael Albinus <michael.albinus@gmx.de> wrote:
Version: 29.1

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Paul,

>> Yes, that fixes the problem. Does that mean I somehow have a mixup of
>> sources from different commits (not sure how) or that the cache is
>> persistent and can survive long times? Note that I also run Emacs 28
>> from time to time. Could it be that 29 reuses cache created by 28 that
>> contains no-longer-compatible values?
>
> Could be the latter, yes. "tmpdir" is the only cache value I know of
> which has changed its meaning(*). Perhaps I shall add a test that it
> ignores cached "tmpdir" values if they are remote. But hmm, it has
> changed its meaning also in Tramp 2.5.3.2, which is distributed via GNU
> ELPA.

Pushed this change to the emacs-28 branch, it will appear in the master
branch after merge.

It will also be contained in the upcoming Tramp 2.5.3.4 on GNU
ELPA. Closing the bug.

>> Paul

Best regards, Michael.