mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-30 13:30:57 +08:00
Merge remote branch 'origin/mdb.master'
This commit is contained in:
commit
0521a7b374
@ -1338,7 +1338,7 @@ none:
|
||||
MDB_oldpages *mop = txn->mt_env->me_pghead;
|
||||
if (num > 1) {
|
||||
MDB_cursor m2;
|
||||
int retry = 60, readit = 0, n2 = num-1;
|
||||
int retry = 500, readit = 0, n2 = num-1;
|
||||
unsigned int i, j, k;
|
||||
|
||||
/* If current list is too short, must fetch more and coalesce */
|
||||
@ -1347,11 +1347,14 @@ none:
|
||||
|
||||
mdb_cursor_init(&m2, txn, FREE_DBI, NULL);
|
||||
do {
|
||||
/* bail out if we're operating on the freelist.
|
||||
/* If on freelist, don't try to read more. If what we have
|
||||
* right now isn't enough just use new pages.
|
||||
* TODO: get all of this working. Many circular dependencies...
|
||||
*/
|
||||
if (mc->mc_dbi == FREE_DBI)
|
||||
break;
|
||||
if (mc->mc_dbi == FREE_DBI) {
|
||||
retry = 0;
|
||||
readit = 0;
|
||||
}
|
||||
if (readit) {
|
||||
MDB_val key, data;
|
||||
MDB_oldpages *mop2;
|
||||
@ -2124,7 +2127,7 @@ mdb_txn_commit(MDB_txn *txn)
|
||||
mdb_cursor_init(&mc, txn, FREE_DBI, NULL);
|
||||
|
||||
/* should only be one record now */
|
||||
if (env->me_pghead) {
|
||||
if (env->me_pghead || env->me_pgfirst) {
|
||||
/* make sure first page of freeDB is touched and on freelist */
|
||||
rc = mdb_page_search(&mc, NULL, MDB_PS_MODIFY);
|
||||
if (rc && rc != MDB_NOTFOUND) {
|
||||
|
Loading…
Reference in New Issue
Block a user