mirror of
https://github.com/isar/libmdbx.git
synced 2025-02-01 11:58:20 +08:00
mdbx: fix internal audit.
Change-Id: I9b3360216bbfc1a1a6f6052aca78331b01dc80ec
This commit is contained in:
parent
1794aeb79b
commit
8467552f0b
@ -4764,14 +4764,16 @@ static __cold int mdbx_audit_ex(MDBX_txn *txn, unsigned retired_stored,
|
|||||||
memcpy(db = &db_copy, NODEDATA(leaf), sizeof(db_copy));
|
memcpy(db = &db_copy, NODEDATA(leaf), sizeof(db_copy));
|
||||||
if ((txn->mt_flags & MDBX_RDONLY) == 0) {
|
if ((txn->mt_flags & MDBX_RDONLY) == 0) {
|
||||||
for (MDBX_dbi k = txn->mt_numdbs; --k > MAIN_DBI;) {
|
for (MDBX_dbi k = txn->mt_numdbs; --k > MAIN_DBI;) {
|
||||||
if ((txn->mt_dbflags[k] & DB_DIRTY) &&
|
if ((txn->mt_dbflags[k] & DB_VALID) &&
|
||||||
/* txn->mt_dbxs[k].md_name.iov_len > 0 && */
|
/* txn->mt_dbxs[k].md_name.iov_len > 0 && */
|
||||||
NODEKSZ(leaf) == txn->mt_dbxs[k].md_name.iov_len &&
|
NODEKSZ(leaf) == txn->mt_dbxs[k].md_name.iov_len &&
|
||||||
memcmp(NODEKEY(leaf), txn->mt_dbxs[k].md_name.iov_base,
|
memcmp(NODEKEY(leaf), txn->mt_dbxs[k].md_name.iov_base,
|
||||||
NODEKSZ(leaf)) == 0) {
|
NODEKSZ(leaf)) == 0) {
|
||||||
mdbx_tassert(txn, (txn->mt_dbflags[k] & DB_STALE) == 0);
|
|
||||||
txn->mt_dbflags[k] |= DB_AUDITED;
|
txn->mt_dbflags[k] |= DB_AUDITED;
|
||||||
|
if (txn->mt_dbflags[k] & DB_DIRTY) {
|
||||||
|
mdbx_tassert(txn, (txn->mt_dbflags[k] & DB_STALE) == 0);
|
||||||
db = txn->mt_dbs + k;
|
db = txn->mt_dbs + k;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4792,10 +4794,12 @@ static __cold int mdbx_audit_ex(MDBX_txn *txn, unsigned retired_stored,
|
|||||||
count += txn->mt_dbs[i].md_branch_pages + txn->mt_dbs[i].md_leaf_pages +
|
count += txn->mt_dbs[i].md_branch_pages + txn->mt_dbs[i].md_leaf_pages +
|
||||||
txn->mt_dbs[i].md_overflow_pages;
|
txn->mt_dbs[i].md_overflow_pages;
|
||||||
} else {
|
} else {
|
||||||
mdbx_warning("audit %s@%" PRIaTXN ": unable account dbi %d / \"%*s\"",
|
mdbx_warning("audit %s@%" PRIaTXN
|
||||||
|
": unable account dbi %d / \"%*s\", state 0x%02x",
|
||||||
txn->mt_parent ? "nested-" : "", txn->mt_txnid, i,
|
txn->mt_parent ? "nested-" : "", txn->mt_txnid, i,
|
||||||
(int)txn->mt_dbxs[i].md_name.iov_len,
|
(int)txn->mt_dbxs[i].md_name.iov_len,
|
||||||
(const char *)txn->mt_dbxs[i].md_name.iov_base);
|
(const char *)txn->mt_dbxs[i].md_name.iov_base,
|
||||||
|
txn->mt_dbflags[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user