vinum panic on -devel

Matthew Dillon dillon at apollo.backplane.com
Fri Jul 7 15:19:43 PDT 2006


: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.

						-Matt





More information about the Bugs mailing list