unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Michael Olson <mwolson@gnu.org>
To: Glenn Morris <rgm@gnu.org>
Cc: Chong Yidong <cyd@stupidchicken.com>,
	Emacs Development Discussions <emacs-devel@gnu.org>
Subject: Re: Fixing dired hangs when NFS mount goes AWOL
Date: Wed, 5 Oct 2011 15:34:53 -0700	[thread overview]
Message-ID: <CAN4ruPhdBLsePG_WNoZJ7NXYCwKM6P0knyq4bt4G9ZyL16-hgQ@mail.gmail.com> (raw)
In-Reply-To: <0jty7nnl1f.fsf@fencepost.gnu.org>

On Wed, Oct 5, 2011 at 3:14 PM, Glenn Morris <rgm@gnu.org> wrote:
>
>>>> Would you consider adding "-l" to the list of default arguments for
>>>> `directory-free-space-args'?  This will fix an issue where attempting
>>>> to open dired buffers with ls-lisp enabled hangs due to an AWOL NFS
>>>> mount.
>
> Could you explain what the issue actually is?
> Normally even trying to ls a directory containing eg a link to a missing
> NFS directory hangs.
>
> Are you saying that doing dired on a local directory that contains a
> link to a missing NFS mount works, but hangs in calling df to calculate
> the 'total used xxx available yyy' part?

The issue is that regardless of what directory you're trying to view
using dired, 'df' apparently still tries to stat *every* known
filesystem, including remote filesystems, before limiting its output
to just that of the filsystem for the given directory.  Changing the
df options by adding '-l' makes df only consider local filesystems, so
that it never tries to stat an NFS filesystem.

> What does ls-lisp have to do with it?

The call order is:
dired-insert-directory
insert-directory (version in ls-lisp.el is used)
get-free-disk-space
-> calls 'df'

> I can see how adding -l might help with a plain `df' call, but how can
> it help `df DIR' if DIR is local?

Apparently it's an issue in how df is implemented, in that it still
attempts to stat all existing mounts before narrowing the listing by
the directory param.  Possibly to resolve symlinks and get a
"truename"?

-- 
Michael Olson  |  http://mwolson.org/



  reply	other threads:[~2011-10-05 22:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-05 18:50 Fixing dired hangs when NFS mount goes AWOL Michael Olson
2011-10-05 21:27 ` Chong Yidong
2011-10-05 21:59   ` Michael Olson
2011-10-05 22:14     ` Glenn Morris
2011-10-05 22:34       ` Michael Olson [this message]
2011-10-05 22:55         ` Glenn Morris
2011-10-05 23:14           ` Glenn Morris
2011-10-05 23:27             ` Michael Olson
2011-10-05 23:31               ` Michael Olson
2011-10-06 12:25               ` Stefan Monnier
2011-10-06 13:18                 ` Michael Albinus
2011-10-06 13:25                   ` Eli Zaretskii
2011-10-06 15:22                   ` Stefan Monnier
2011-10-06 17:58                     ` Michael Albinus
2011-10-06 21:18                       ` Stefan Monnier
2011-10-07 11:43                         ` Michael Albinus
2011-10-07 13:41                           ` Stefan Monnier
2011-10-06 18:45           ` Michael Olson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAN4ruPhdBLsePG_WNoZJ7NXYCwKM6P0knyq4bt4G9ZyL16-hgQ@mail.gmail.com \
    --to=mwolson@gnu.org \
    --cc=cyd@stupidchicken.com \
    --cc=emacs-devel@gnu.org \
    --cc=rgm@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).