Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 May 2015 23:59:00 +0200
From:      "Julian H. Stacey" <jhs@berklix.com>
To:        NGie Cooper <yaneurabeya@gmail.com>
Cc:        Ryan Stone <rysto32@gmail.com>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: What's required to make removal of a mounted USB stick safe?
Message-ID:  <201505062159.t46Lx0iZ028607@fire.js.berklix.net>
In-Reply-To: Your message "Wed, 06 May 2015 14:28:12 -0700." <CAGHfRMCRKoq7miFRrXYEmQiaHd%2BBat2t6Ab72%2BNJLW0=LQk40Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Reference:
> From:		NGie Cooper <yaneurabeya@gmail.com>
> Date:		Wed, 6 May 2015 14:28:12 -0700

NGie Cooper wrote:
> On Wed, May 6, 2015 at 1:49 PM, Ryan Stone <rysto32@gmail.com> wrote:
> > Currently FreeBSD stands a fair chance at panicking if a mounted USB drive
> > is removed while I/O is in flight.  Does anybody know what work is involved
> > to have the kernel safely recover from this case?  Losing data from the
> > drive is expected of course but there's no reason that the entire kernel
> > has to crash.
> >
> > A co-worker has been looking at this but I don't feel that we understand
> > the problem well enough to produce a real fix.  All that we've been doing
> > so far is papering over the explicit panics without having a full
> > understanding of what we're doing.
> 
> What version are you working on and how is the USB stick mounted (/, /mnt, etc)?

Not a new problem, it' been so over 30 years with Unix. 
Remove media without umount & game over.  
Some Solutions:
- Deep kernel work (dont hold your breath, see 30 above, & don't look at me :-)
- Cobble up some C to run from user space, not as root,
  so that your UFS is not mounted, but accessed by user level
  programs (much like mwrite & mread for accessing DOS media of old)
- man 8 amd : set a short timeout to auto unmount,
  it wont total solve your problem, but should lessen the frequency of panics.
- Mount the USB media on a spare laptop running as an NFS+ AMD server,
  then access the FS via NFS from your real client big PC.  When
  you pull the stick by accident forgetting its mounted, just the
  laptop crashes afte a bit, the AMD access on the other PC just
  hangs but doesnt crash.
- Encourage A SOC (google summer of code) student to look at it,
  probably wont come to a solution though, see 30 above.
- Toss money at the problem :-) If your company can afford some cash, either:
  - help fund FreeBSD Foundation & ask them to solve it, 
  - Or pay some consultant somewhere to look at it, Here's a globaly
    geographicaly indexed list http://berklix.com/consultants/
    maybe there's one near your company ?

Cheers,
Julian
--
Julian Stacey, BSD Linux Unix C Sys Eng Consultant Munich http://berklix.com
	Indent previous with "> ".	Reply Below as a play script.
	Send plain text, Not quoted-printable, HTML, or base64.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505062159.t46Lx0iZ028607>