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 17:43:22 +0200
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:

Hi Gerd,

>> Just wait! There's another nuisance worth to fix. Could you, pls, check?
>
> 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.

And everything is mixed happily with cached values, for performance
speedup ...

> Weird. With
>
>   (trace-function 'tramp-sh-handle-file-writable-p)
>
> I can see that this comes out of that function.
>
> Giving you access to "mini" is not an easy option, I'm afraid. It means
> fighting with macOS network security, an area that I have virtually 0
> experience with :-(.
>
> Anyway, maybe I can debug this. Or, I just change /tmp to not be
> symlink, or maybe I can just set TMPDIR or something. Or, I just ssh and
> run Emacs on the remote machine, with 0 work :-).

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.

Best regards, Michael.




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.