GNU bug report logs - #77402
31.0.50; Tramp: file-writable-p broken

Previous Next

Package: emacs;

Reported by: Gerd Möllmann <gerd.moellmann <at> gmail.com>

Date: Mon, 31 Mar 2025 08:22:02 UTC

Severity: normal

Found in version 31.0.50

Fixed in version 30.2

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: 77402 <at> debbugs.gnu.org
Subject: bug#77402: 31.0.50; Tramp: file-writable-p broken
Date: Mon, 31 Mar 2025 18:53:55 +0200
[Message part 1 (text/plain, inline)]
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

Hi Gerd,

>>> I'm afraid that's also not it. I can now boil it down to the following
>>> test with emacs -Q (I'm always building without window system FWIW):
>>>
>>>   (file-writable-p "/ssh:mini:/tmp")
>>>    => nil
>>>   (file-writable-p (file-truename "/ssh:mini:/tmp"))
>>>    => t
>>>
>>> where
>>>
>>>   (file-truename "/ssh:mini:/tmp")
>>>    => "/ssh:mini:/private/tmp"
>>
>> Yes, this is the area I'm looking at. "/ssh:mini:/tmp" has file
>> permissions lrwxr-xr-x, and "/ssh:mini:/private/tmp" has file
>> permissions drwxrwxrwt. (file-writable-p "/ssh:mini:/tmp") should look
>> at the permissions of the target, but it doesn't. It looks at the
>> permissions of the symlink itself.
>
> That's what I suspected..
>
>> And everything is mixed happily with cached values, for performance
>> speedup ...
>
> ...and there I got stuck :-)

Finally., I could reproduce the problem. There was the weirdness, that on
GNU/Linux I couldn't give a symlink the permissions 555 (your "/tmp"
symlink has it), and so I couldn't test. Fortunately, I remembered my
FreeBSD 14 VM, and there I could reproduce the problem.

The appended patch ought to fix it. Could you, pls, test?

>> OK, I'll continue to understand what happens. In the meantime, you might
>> be better with setting tramp-use-file-attributes to nil, globally. At
>> least it doesn't use the caches then.
>
> Yeah, (setq tramp-use-file-attributes nil) makes it work. Thanks!

Don't forget to revert this, testing may patch.

Best regards, Michael.

[Message part 2 (text/x-patch, attachment)]

This bug report was last modified 52 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.