misc/164472: fsck -B panics on particular data inconsistency
Eugene M. Zheganin
eugene at zhegan.in
Wed Jan 25 09:00:30 UTC 2012
>Synopsis: fsck -B panics on particular data inconsistency
>Arrival-Date: Wed Jan 25 09:00:29 UTC 2012
>Originator: Eugene M. Zheganin
FreeBSD elf.hq.norma.perm.ru 8.2-RELEASE FreeBSD 8.2-RELEASE #1: Thu May 5 19:14:23 YEKST 2011 emz at ns.hq.norma.perm.ru:/usr/obj/usr/src/sys/ELF i386
fsck -B panics on particular inconsistencies.
I got one machine that sometimes locks up (probably die to some other bug), and after reset when it runs fsck -B it leads to panic.
Since this happens quite often last time I created an image on a partition that makes FreeBSD panic.
Unfortunately this machine doesn't run a debug kernel, and, due to a bug when FreeBSD reboots immidiately upon a key press from a screen where it says 'Automatic reboot in 15 seconds, press any key to abort' (which is still unreported for some reason, while lots of people confirm its existance) I was (and I am) unable to capture a panic screen.
But, since I have an image, everyone can easily reproduce this panic.
This is 100% reproduceable, at least I've done it 5 times on a test machine and got a panic each time. Unfortunately, this machine is too old to build debug kernel in some reasonable amount of time (I really think anyone will download this image faster than I will build a debug kernel).
So... here comes the image in case someone is interested.
Attention, FreeBSD panics only when fsck is run with -B. Ordinary fsck run doesn't panic and is able to successfully resolve all the filesystem errors.
Get an image from http://tech.norma.perm.ru/files/var.dsk (sorry, this link is about a couple of megabits, my really broadband link is served by a server from my previous report with a buggy pf route-to/reply-to, so I'm using this old server). Mount it read-write (I didn't test it on an unmounted or read-only image). Like this:
mdconfig -a -t vnode -f var.dsk
mount /dev/md0 /mnt/panic
Run an fsck (since it's a partition image you need to manually specify the fsck of the type needed):
fsck_4.2bsd -B /dev/md0
<here it panics>
Run fsck without -B.
More information about the freebsd-bugs