DragonFly bugs List (threaded) for 2006-07
Re: vinum panic on -devel
:Of course I tried to find out how the "really correct way" should look like. Now I don't get any panics and it *seems* that it might work, but some completely different, but seemingly related (happened several times, not neccessarily directly coupled) panic occured:
Well, if you are going to use getpbuf() you have to be absolutely sure
that b_bcount and b_resid are set properly before any I/O. geteblk()
sets those fields to the passed size, getpbuf() sets them to the
pbuffer which is MAXBSIZE.
I recommend that we stick with geteblk() for now.
:dev = #ad/0x20003, block = 11896, fs = /var
:panic: ffs_blkfree: freeing free block
:backtrace I can't because:
It's possible that you are overwriting something but I will note that
ffs_blkfree panics have been reported by others. I am guessing that it
is a softupdates bug of some sort. I've put tons of assertions code in
UFS to try to catch the blkfree panic earlier with no success so my
guess is that it is not corruption per-say but instead softupdates
reusing a block which has a pending free associated with it, then later
writing out the free state while the block is still in use.