Subject: bug#27871: closed (Re: bug#27871: [PATCH] Treat unreachable current directory as error)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 05 Oct 2017 23:07:02 +0000

Your bug report

#27871: 26.0.50; Bad handling of unmounted directory

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
27871: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=27871
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#27871: [PATCH] Treat unreachable current directory as error
From: Paul Eggert <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked], [email-masked], [email-masked]
Date: Thu, 5 Oct 2017 16:06:17 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On 10/05/2017 03:13 AM, Eli Zaretskii wrote:
> Thanks, this LGTM.  I think we want this on the release branch.

OK, thanks, installed, and closing this bug report.

Subject: 26.0.50; Bad handling of unmounted directory
From: Philipp <[email-masked]>
To: [email-masked]
Date: Sat, 29 Jul 2017 23:06:32 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

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.

In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.10.8)
 of 2017-07-29 built on unknown
Repository revision: 2c930d15f541761422a268cd2b5a7f5c11c9a00e
Windowing system distributor 'The X.Org Foundation', version 11.0.11803000
System Description:	Ubuntu 14.04.5 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --with-modules --without-pop --with-mailutils
 --enable-checking --enable-check-lisp-object-type --enable-gcc-warnings
 'CFLAGS=-ggdb3 -O0''

Configured features:
XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message subr-x puny seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date mule-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote inotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 94115 11926)
 (symbols 48 20077 1)
 (miscs 40 38 119)
 (strings 32 28435 1945)
 (string-bytes 1 754739)
 (vectors 16 13893)
 (vector-slots 8 487465 12899)
 (floats 8 48 97)
 (intervals 56 205 0)
 (buffers 992 11)
 (heap 1024 19129 984))