ffs_blkfree panic + lockmgr panic

Matthew Dillon dillon at apollo.backplane.com
Mon Jul 10 09:40:28 PDT 2006


:..
:>     getpbuf() rather then trypbuf().  You can't have temporary resource=
:=20
:>     failures in the places where trypbuf() is being used.  This is unre=
:lated
:>     to the bug, though.
:
:I am not sure that I understand what you mean:  The original (and now use=
:d) code checks the result of geteblk(), but this can't fail anyways.  So =
:I decided to go with trypbuf() instead of getpbuf() so that those functio=
:ns (all called from ioctl) could fail and not block.

    geteblk() isn't supposed to fail under normal operating conditions.
    Failures are considered, well, a fatal error.

    trypbuf() *CAN* fail under normal operating conditions, just like
    malloc(M_NOWAIT) can fail under normal operating conditions.  Such
    failures are not a fatal error, but vinum isn't designed to treat them
    as non-fatal so what you will up with will be a bunch of odd vinum
    failures that it doesn't recover from under certain load conditions.

						-Matt

:
:>     If you could get a crash dump of the blkfree panic onto leaf I'd li=
:ke=20
:>     to take a look at it.
:
:Will do, but it will take some time, as it is >200mb compressed.
:
:cheers
:  simon





More information about the Bugs mailing list