Fix locking issues in DB1 HDB backend.
commit1f63d6e4dc0dfbb9129c49c6808cac5415c7d20f
authorRoland C. Dowdeswell <elric@imrryr.org>
Fri, 18 May 2012 11:39:08 +0000 (18 12:39 +0100)
committerRoland C. Dowdeswell <elric@imrryr.org>
Fri, 18 May 2012 11:39:08 +0000 (18 12:39 +0100)
treefee46ade31c06204252d79f8be0637bca9fd5841
parent8cdcd53a5af16ceb3cf826914ecdbe23e68a5378
Fix locking issues in DB1 HDB backend.

Multiple concurrent writers would cause the HDB to become corrupted
as the locking was not sufficient to prevent these sorts of issues
from occurring.  We have changed the locking to obtain the appropriate
kind of lock on database open and to hold that lock until the
database closes.  We need to do this as Berkeley DB 1.85 will cache
information from the database in memory and if if this information
is updated without our knowledge then our later writes will corrupt
the database.  We speculate that there would be issues with a single
writer and reader but did not reproduce them.
lib/hdb/db.c