From owner-freebsd-hackers@FreeBSD.ORG Wed May 6 21:59:21 2015 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9CBE7463 for ; Wed, 6 May 2015 21:59:21 +0000 (UTC) Received: from slim.berklix.org (slim.berklix.org [94.185.90.68]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 146A61574 for ; Wed, 6 May 2015 21:59:20 +0000 (UTC) Received: from mart.js.berklix.net (pD9FBF374.dip0.t-ipconnect.de [217.251.243.116]) (authenticated bits=128) by slim.berklix.org (8.14.5/8.14.5) with ESMTP id t46LxebT021693; Wed, 6 May 2015 23:59:41 +0200 (CEST) (envelope-from jhs@berklix.com) Received: from fire.js.berklix.net (fire.js.berklix.net [192.168.91.41]) by mart.js.berklix.net (8.14.3/8.14.3) with ESMTP id t46LxIba085188; Wed, 6 May 2015 23:59:18 +0200 (CEST) (envelope-from jhs@berklix.com) Received: from fire.js.berklix.net (localhost [127.0.0.1]) by fire.js.berklix.net (8.14.7/8.14.7) with ESMTP id t46Lx0iZ028607; Wed, 6 May 2015 23:59:12 +0200 (CEST) (envelope-from jhs@berklix.com) Message-Id: <201505062159.t46Lx0iZ028607@fire.js.berklix.net> To: NGie Cooper cc: Ryan Stone , "freebsd-hackers@freebsd.org" Subject: Re: What's required to make removal of a mounted USB stick safe? From: "Julian H. Stacey" Organization: http://berklix.com BSD Unix Linux Consultants, Munich Germany User-agent: EXMH on FreeBSD http://berklix.com/free/ X-URL: http://www.berklix.com In-reply-to: Your message "Wed, 06 May 2015 14:28:12 -0700." Date: Wed, 06 May 2015 23:59:00 +0200 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 21:59:21 -0000 Hi, Reference: > From: NGie Cooper > Date: Wed, 6 May 2015 14:28:12 -0700 NGie Cooper wrote: > On Wed, May 6, 2015 at 1:49 PM, Ryan Stone 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.