all messages for Emacs-related lists mirrored at yhetil.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

* 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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.