mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-19 05:13:35 -05:00
Add error MDB_PROBLEM, replace some MDB_CORRUPTED
When problem is most likely in txn, not on disk.
This commit is contained in:
parent
291c69ddbd
commit
84610e65da
2 changed files with 8 additions and 5 deletions
|
|
@ -456,8 +456,10 @@ typedef enum MDB_cursor_op {
|
|||
#define MDB_BAD_VALSIZE (-30781)
|
||||
/** The specified DBI was changed unexpectedly */
|
||||
#define MDB_BAD_DBI (-30780)
|
||||
/** Unexpected problem - txn should abort */
|
||||
#define MDB_PROBLEM (-30779)
|
||||
/** The last defined error code */
|
||||
#define MDB_LAST_ERRCODE MDB_BAD_DBI
|
||||
#define MDB_LAST_ERRCODE MDB_PROBLEM
|
||||
/** @} */
|
||||
|
||||
/** @brief Statistics for a database in the environment */
|
||||
|
|
|
|||
|
|
@ -1565,6 +1565,7 @@ static char *const mdb_errstr[] = {
|
|||
"MDB_BAD_TXN: Transaction must abort, has a child, or is invalid",
|
||||
"MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size",
|
||||
"MDB_BAD_DBI: The specified DBI handle was closed/changed unexpectedly",
|
||||
"MDB_PROBLEM: Unexpected problem - txn should abort",
|
||||
};
|
||||
|
||||
char *
|
||||
|
|
@ -2001,7 +2002,7 @@ mdb_page_loose(MDB_cursor *mc, MDB_page *mp)
|
|||
if (mp != dl[x].mptr) { /* bad cursor? */
|
||||
mc->mc_flags &= ~(C_INITIALIZED|C_EOF);
|
||||
txn->mt_flags |= MDB_TXN_ERROR;
|
||||
return MDB_CORRUPTED;
|
||||
return MDB_PROBLEM;
|
||||
}
|
||||
/* ok, it's ours */
|
||||
loose = 1;
|
||||
|
|
@ -2611,7 +2612,7 @@ mdb_page_touch(MDB_cursor *mc)
|
|||
if (mp != dl[x].mptr) { /* bad cursor? */
|
||||
mc->mc_flags &= ~(C_INITIALIZED|C_EOF);
|
||||
txn->mt_flags |= MDB_TXN_ERROR;
|
||||
return MDB_CORRUPTED;
|
||||
return MDB_PROBLEM;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -6263,7 +6264,7 @@ mdb_ovpage_free(MDB_cursor *mc, MDB_page *mp)
|
|||
j = ++(dl[0].mid);
|
||||
dl[j] = ix; /* Unsorted. OK when MDB_TXN_ERROR. */
|
||||
txn->mt_flags |= MDB_TXN_ERROR;
|
||||
return MDB_CORRUPTED;
|
||||
return MDB_PROBLEM;
|
||||
}
|
||||
}
|
||||
txn->mt_dirty_room++;
|
||||
|
|
@ -7656,7 +7657,7 @@ put_sub:
|
|||
return rc;
|
||||
bad_sub:
|
||||
if (rc == MDB_KEYEXIST) /* should not happen, we deleted that item */
|
||||
rc = MDB_CORRUPTED;
|
||||
rc = MDB_PROBLEM;
|
||||
}
|
||||
mc->mc_txn->mt_flags |= MDB_TXN_ERROR;
|
||||
return rc;
|
||||
|
|
|
|||
Loading…
Reference in a new issue