linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Martin Papik <mp6058@gmail.com>
Cc: Eric Sandeen <sandeen@sandeen.net>, xfs@oss.sgi.com
Subject: Re: XFS filesystem claims to be mounted after a disconnect
Date: Sat, 3 May 2014 09:35:12 +1000	[thread overview]
Message-ID: <20140502233512.GE26353@dastard> (raw)
In-Reply-To: <5363ECE8.6030706@gmail.com>

On Fri, May 02, 2014 at 10:07:20PM +0300, Martin Papik wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
> 
> > to be honest, I'm not certain; if it came back under the same
> > device name, things may have continued.  I'm not sure.

No, they won't. Because the disconnection breaks all references from
the filesystem to the original block device.

> Personally, I haven't seen it reconnect even once. I've seen disks
> fail to appear until the old references are removed, or even
> partitions not detecting until all is clean. Reconnecting, only on SW
> raid, and only when everything was just right.

Right, that's because sw raid probes the new drive, finds the MD/LVM
signature, and knows where it put. Nothing else does.

> > Somewhere in the vfs, the filesystem was still present in a way
> > that the ustat syscall reported that it was mounted. xfs_repair
> > uses this syscall to determine mounted state.  It called sys_ustat,
> > got an answer of "it's mounted" and refused to continue.
> > 
> > It refused to continue because running xfs_repair on a mounted
> > filesystem would lead to severe damage.
> 
> I understand that, and I'm okay with whatever I need to do in order to
> restore the FS after the failure, but it would be good to have xfs
> report the status correctly, i.e. show up in /proc/mounts UNTIL all
> resources are released. What do you think?

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.

> > 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.

> > documentation, that's probably something we should address.
> 
> Yup, any idea when? .... Also, I think it would be good to have a
> section on what to do when things go south and what to expect. E.g. I
> found out the hard way that xfs_check on a 2TB disk allocates 16G of
> memory, so now I'm running it with cgroup based limitations, otherwise

$ man xfs_check
....
Note that xfs_check is deprecated and scheduled for removal in June
2014. Please use xfs_repair -n instead.
....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

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

  parent reply	other threads:[~2014-05-02 23:35 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 [this message]
2014-05-03  0:04               ` Martin Papik
2014-05-03  3:02                 ` Dave Chinner
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=20140502233512.GE26353@dastard \
    --to=david@fromorbit.com \
    --cc=mp6058@gmail.com \
    --cc=sandeen@sandeen.net \
    --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;
as well as URLs for NNTP newsgroup(s).