GNU bug report logs - #27871
26.0.50; Bad handling of unmounted directory

Previous Next

Package: emacs;

Reported by: Philipp <p.stephani2 <at> gmail.com>

Date: Sat, 29 Jul 2017 21:08:02 UTC

Severity: minor

Found in version 26.0.50

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 27871 <at> debbugs.gnu.org (full text, mbox):

From: Philipp Stephani <p.stephani2 <at> gmail.com>
To: 27871 <at> debbugs.gnu.org
Subject: Re: bug#27871: 26.0.50; Bad handling of unmounted directory
Date: Sat, 23 Sep 2017 10:19:19 +0000
[Message part 1 (text/plain, inline)]
Philipp <p.stephani2 <at> gmail.com> schrieb am Sa., 29. Juli 2017 um 23:08 Uhr:

>
> Create a FUSE mount point, e.g.
>
> cd /tmp
> mkdir a a/a b
> touch a/a/a
> bindfs -f a b
>
> While bindfs(1) is running, cd to the mounted directory in a second
> shell:
>
> cd /tmp/b/a
>
> Now kill bindfs, e.g. by hitting ^C in the first shell.  The second
> shell will now be in an unmounted directory.  From that directory, start
> Emacs:
>
> $ emacs -Q -batch a
> Apparent cycle of symbolic links for (unreachable)
>
> or, with stack trace
>
> $ emacs -Q -batch -f toggle-debug-on-error a
> Debug on Error enabled globally
> ...
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)/a/(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a/(unreachable)/a" (-1) (nil))
>   file-truename("(unreachable)/a/(unreachable)/a/(unreachable)" (-1) (nil))
>   file-truename("(unreachable)/a/(unreachable)/a/(unreachable)/a" (-1)
> (nil))
>
> file-truename("(unreachable)/a/(unreachable)/a/(unreachable)/a/(unreachable)"
> (-1) (nil))
>
> file-truename("(unreachable)/a/(unreachable)/a/(unreachable)/a/(unreachable)/a"
> (-1) (nil))
>
> file-truename("(unreachable)/a/(unreachable)/a/(unreachable)/a/(unreachable)/a/a")
>   find-file-noselect("(unreachable)/a/(unreachable)/a/a")
>   #f(compiled-function (displayable-buffers dir line column name)
> #<bytecode>)((nil) "(unreachable)/a/" (0) (0) "a")
>   command-line-1(("-f" "toggle-debug-on-error" "a"))
>   command-line()
>   normal-top-level()
>
> It seems like the logic for `default-directory' and/or `file-truename'
> should be improved for unmounted filesystems.
>
>
Here's a patch. With the patch, the output is

 Error getting directory: Transport endpoint is not connected
Warning (initialization): Error setting default-directory
Ignoring relative file name (a) due to nil default-directory
[Message part 2 (text/html, inline)]
[0001-Treat-unreachable-current-directory-as-error.txt (text/plain, attachment)]

This bug report was last modified 7 years and 233 days ago.

Previous Next


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