This patch is against Sleepycat's db-4.0.14 release. It's not on the Sleepycat site. It fixes cases of database corruption Barry (Warsaw) was seeing, and Barry got it from Sleepycat. *** db/db_reclaim.c.orig 2002/04/05 16:16:17 11.22 --- db/db_reclaim.c 2002/04/10 18:53:13 11.23 *************** *** 195,202 **** dbp->log_fileid, p->pgno, &LSN(meta), PGNO_BASE_MD, &ldbt, meta->free)) != 0) goto err; - LSN(p) = LSN(meta); if ((ret = __db_pg_alloc_log(dbp->dbenv, param->dbc->txn, &LSN(meta), 0, --- 195,202 ---- dbp->log_fileid, p->pgno, &LSN(meta), PGNO_BASE_MD, &ldbt, meta->free)) != 0) goto err; LSN(p) = LSN(meta); + if ((ret = __db_pg_alloc_log(dbp->dbenv, param->dbc->txn, &LSN(meta), 0, *************** *** 206,211 **** --- 206,213 ---- (void)__TLPUT(param->dbc, metalock); return (ret); } + LSN(p) = LSN(meta); + if ((ret = mpf->put(mpf, (PAGE *)meta, DB_MPOOL_DIRTY)) != 0) { (void)__TLPUT(param->dbc, metalock);