5.2-BETA/x86: softupdates on / kills installation

Dan Foster dsf at globalcrossing.net
Fri Nov 28 16:38:11 PST 2003

This is from 5.2-BETA-20031127-JPSNAP.iso on a P4/800FSB/HT system:

Note: this was manually transcribed because of the nature of the bug
(installation failure), was unable to obtain a crash dump to be saved.

It's completely reproducible on every installation attempt *IFF*
softupdates is enabled for the / filesystem. If softupdates is not enabled
for / at installation time, the installation succeeds normally.

It crashes to DDB when it's about to extract files from base/base.ag:

9073664 bytes read from base dist, chunk  7 of 35 @ 1814.7 KBytes/sec.
kernel: type 12 trap, code=0
Stopped at	_mtx_assert+0x4e:	movl	0x1c(%ebx),%eax
db> trace
_mtx_assert(0,1,c08afff0,63e,1000>) at mtx_assert+0x4e
vm_page_set_invalid(c22540d0,0,1000,554,0) at vm_page_set_invalid+0x35
brelse(d3505a60,0,e2242b90,c70a1a00,cbcf0000) at brelse+0x52b
softdep_disk_io_initiation(d35056f0,c6cf0000,e2242bc4,246,c089e678) at
spec_xstrategy(c721e30c,d35056f0,d5b,c089e678,d35056f0) at spec_xstrategy+0x117
spec_specstrategy(e2242bf8,f4,c2278310,4,d35056f0) at spec_specstrategy+0x72
ufs_strategy(e2242c3c,e2242c6c,c06b718d,e2242c3c,1) at ufs_strategy+0x13c
ufs_vnoperate(e2242c3c,1,c089e678,360,c0980340) at ufs_vnoperate+0x18
bwrite(d35056f0,0,c089e678,69b,880aa40) at bwrite+0x44d
vfs_bio_awrite(d35056f0,0,c089e678,88e,c6cf0000) at vfs_bio_awrite+0x252
flushbufqueues(0,0,c089e678,819,64) at flushbufqueues+0x247
buf_daemon(0,e2242d48,c0896058,311,fcd2e824) at buf_daemon+0xdc
fork_exit(c06b97c0,0,e2242d48) at fork_exit+0xb4
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xe2242d7c, ebp = 0 ---

So it's clearly a bug tickled by softupdates being enabled; eventually
works its way to brelse() which then calls vm_page_set_invalid() and that
fails due to some sort of mutex assertion. I don't know the VM system well
enough to debug it further. I'd be happy to do any additional testing with
a customized image or whatever -- I've got an external drive dedicated
solely for fbsd overwrite install tests.

I've run into this bug whenever I tried to install from 5.1-CURRENT for a
few months now (didn't try before then) so it doesn't seem to be a new

I've also found at least two mentions of this bug seen by others in this
mailing list in the past few months, but nothing in the bugs tracking db so
guess I'll send-pr a report along, soon.

Looks like it crashes and burns at installation time only if / has
softupdates enabled; if either a single / fs has softupdates disabled OR if
in a multiple filesystem setup, only / has softupdates disabled, then
installation works fine.

Perhaps a note in the installation document to have softupdates for /
disabled for at least the installation as a current workaround would be

(I imagine it should work ok post-installation to enable softupdates on /
if desired, but haven't tested that scenario yet.)

Hardware details of system in question provided upon request; didn't supply
since this looks more like a software issue (since it's reproducible at
will on various hard drives, both internal and external, on different
controllers and busses... IDE, USB, and Firewire, as well as given the
particular backtrace.)


More information about the freebsd-current mailing list