public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Martin Papik <mp6058@gmail.com>
Cc: xfs@oss.sgi.com
Subject: Re: XFS filesystem claims to be mounted after a disconnect
Date: Sat, 3 May 2014 13:02:22 +1000	[thread overview]
Message-ID: <20140503030221.GJ26353@dastard> (raw)
In-Reply-To: <536432A0.6000405@gmail.com>

On Sat, May 03, 2014 at 03:04:48AM +0300, Martin Papik wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> 
> > It's called a lazy unmount: "umount -l". It disconnects the 
> > filesystem from the namespace, but it still lives on in the kernel 
> > until all references to the filesystem go away. Given that the 
> > hot-unplug proceedure can call back into the filesystem to sync it
> > (once it's been disconnected!) the hot unplug can deadlock on
> > filesystem locks that can't be released until the hot-unplug errors
> > everything out.
> > 
> > So you can end up with the system in an unrecoverable state when
> > USB unplugs.
> 
> And the disconnect from the namespace is what removes it from
> /proc/mounts?

I believe so.

> By hot unplug, do you mean a user initiated "remove device" or a pull
> out of the USB cable? I'm sorry, I don't understand your example.
> Would you be kind enough to elaborate?

Anything that causes a hot-unplug to occur. There's no real
difference between echoing a value to the relevant sysfs file to
trigger the hot-unplug or simply pull the plug on the active device.
Or could even occur because something went wrong in the USB
subsystem (e.g. a hub stopped communicating) and so the end devices
disappeared, even though nothing is wrong with them.

> >>> If xfs encounters an insurmountable error, it will shut down,
> >>> and all operations will return EIO or EUCLEAN.  You are right
> >>> that there is no errors=* mount option; the behavior is not
> >>> configurable on xfs.
> >> 
> >> IMHO it should be, but since the last email I've glanced at some 
> >> mailing lists and understand that there's some reluctance, in the
> >> name of not polluting the FS after an error. But at least a R/O
> >> remount should be possible, to prevent yanking libraries from
> >> under applications (root FS).
> > 
> > What you see here has nothing to do with XFS's shutdown behaviour. 
> > The filesystem is already unmounted, it just can't be destroyed 
> > because there are still kernel internal references to it.
> 
> How can I detect this situation? I mean I didn't see anything in
> /proc/mounts or references to the mount point from /proc/<pid>/*, so I
> only managed to correct it (chdir elsewhere) by chance on a hunch.
> Would it not be desirable to know that there's a phantom FS referenced
> by a number of processes?

lsof.

> Also, do you know if this affects other filesystems? I never saw this
> with ext3/4 or reiser, I don't have much practical experience with
> other filesystems. I ask because your explanation sounds like it's vfs
> rather than xfs, but as I said, I never saw this before.

Yes, it affects all filesystems - the same behaviour occurs
regardless of the filesystem that is active on the block device.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2014-05-03  3:02 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-02 13:47 XFS filesystem claims to be mounted after a disconnect Martin Papik
2014-05-02 15:04 ` Eric Sandeen
2014-05-02 15:07 ` Eric Sandeen
2014-05-02 15:44   ` Mark Tinguely
2014-05-02 16:26     ` Martin Papik
2014-05-02 16:44   ` Martin Papik
2014-05-02 16:53     ` Eric Sandeen
2014-05-02 17:54       ` Martin Papik
2014-05-02 18:39         ` Eric Sandeen
2014-05-02 19:07           ` Martin Papik
2014-05-02 19:16             ` Eric Sandeen
2014-05-02 19:29               ` Martin Papik
2014-05-02 23:38                 ` Dave Chinner
2014-05-02 23:35             ` Dave Chinner
2014-05-03  0:04               ` Martin Papik
2014-05-03  3:02                 ` Dave Chinner [this message]
2014-06-02 11:22                   ` Martin Papik
2014-06-02 23:41                     ` Dave Chinner
2014-06-03  9:23                       ` Martin Papik
2014-06-03  9:55                         ` Stefan Ring
2014-06-03 10:48                           ` Martin Papik
2014-06-03 21:28                             ` Dave Chinner
2014-06-03 22:37                               ` Martin Papik
2014-06-05  0:55                                 ` Dave Chinner
2014-06-05  1:38                                   ` Martin Papik
2014-06-05 19:39                                   ` Martin Papik
2014-06-05 22:41                                     ` Dave Chinner
2014-06-06  0:47                                       ` Martin Papik
2014-06-03 22:58                               ` Martin Papik
2014-06-05  0:08                                 ` Dave Chinner
2014-06-05  1:07                                   ` Martin Papik

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=20140503030221.GJ26353@dastard \
    --to=david@fromorbit.com \
    --cc=mp6058@gmail.com \
    --cc=xfs@oss.sgi.com \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox