DragonFly BSD
DragonFly bugs List (threaded) for 2006-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: vinum panic on -devel


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 7 Jul 2006 15:18:12 -0700 (PDT)

: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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]