buffers not syncing correctly during shutdown
Matthias Andree
matthias.andree at gmx.de
Thu Oct 15 08:11:35 UTC 2009
Gary Jennejohn schrieb:
> On Wed, 14 Oct 2009 12:49:54 +0200 (CEST)
> Alexander Best <alexbestms at math.uni-muenster.de> wrote:
>
>> hi there,
>>
>> to keep it short:
>>
>> 1. mount a removable device (e.g. an usb stick) (better use -r to prevent data
>> loss)
>> 2. unplug the device (without unmounting it)
>> 3. `shutdown -r now`
>>
>> what happens is that the usual shutdown routine gets processed until all
>> buffers are synced, but then the system stalls.
>>
>> after resetting the system all devices (which were supposed to be synced) are
>> marked dirty and are being fsck'ed.
>>
>> cheers.
>> alex
>>
>> oh...and i'm running FreeBSD otaku 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r197914:
>> Sat Oct 10 02:58:19 CEST 2009 root at otaku:/usr/obj/usr/src/sys/ARUNDEL
>> i386
>>
>
> I'm inclined to say that umount'ing the file systems is failing because
> you pulled the USB stick out without doing umount. Of course, that
> results in all file systems still being marked dirty. Obviously, this
> pathological case isn't being handled.
>
> I personally don't see why it ever should be handled. This is UNIX not
> Windows and users should be smart enough to know that they umount such
> devices before removing them otherwise nasty things can happen.
1. If the device for one file system is gone, why would I mark *other* file
systems dirty? There is no reason to do so.
2. If a file system was mounted read-only, and its device is removed, there are
by definition ZERO dirty buffers that we need to synch on shutdown, so why does
the premature unplug-readonly-before-unmount spoil the shutdown?
More information about the freebsd-current
mailing list