DB 4.8 introduces some performance enhancements, based on the use
of shared/exclusive latches instead of locks in some areas of the
internal buffer management code. This change will affect how the
DB_MPOOL
interface handles dirty buffers.
Because of these
changes, DB_MPOOLFILE->get
will now
acquire an exclusive latch on the buffer if
the DB_MPOOL_DIRTY
or DB_MPOOL_EDIT
flags are specified. This
could lead to an application deadlock if the application tries to
fetch the buffer again, without an
intervening DB_MPOOLFILE->put
call.
If your application uses the DB_MPOOL
interface, and especially the DB_MPOOL_DIRTY
and DB_MPOOL_EDIT
flags, you should review your
code to ensure that this behavior change does not cause your
application to deadlock.