dillon at apollo.backplane.com
Sun Jul 29 13:29:10 PDT 2007
I've tracked the vinum problem down to the fact that vinum is trying
to synthesize devices and talk directly to the device layer. It's
doing a number of things wrong:
* It is opening and closing the underlying device regardless of whether
the underlying device wants only a 'last close' close. This is
causing the underlying device to be closed even if other sources,
such as other filesystems, are holding it open.
This is what is causing all the dscheck errors and blowing up the
rest of the system.
* It is overriding the device's si_iosize_max setting. This is just
plain illegal. vinum has no business setting an underlying device's
maximum physical I/O size.
* It is calling the device strategy functions with I/O sizes which
are not bounded by the device's si_iosize_max setting.
I am working on a fix right now, which is basically to make vinum use
the vnode interface to access underlying devices instead of the device
More information about the Bugs