mirror of
https://github.com/isar/libmdbx.git
synced 2025-05-16 06:07:46 +08:00
mdbx: fix GC-slot cleanup inside mdbx_update_gc()
in extra rare complex cases.
More for 5f1b684719
and https://github.com/erthink/libmdbx/issues/123
Change-Id: I1b78d6be2babf9ffdd0b77e7b1ee53d1313977bb
This commit is contained in:
parent
251eda6fb8
commit
943bb552a2
@ -8080,8 +8080,10 @@ retry_noaccount:
|
|||||||
goto bailout;
|
goto bailout;
|
||||||
|
|
||||||
if (MDBX_PNL_SIZE(txn->tw.lifo_reclaimed)) {
|
if (MDBX_PNL_SIZE(txn->tw.lifo_reclaimed)) {
|
||||||
if (need_cleanup)
|
if (need_cleanup) {
|
||||||
mdbx_txl_sort(txn->tw.lifo_reclaimed);
|
mdbx_txl_sort(txn->tw.lifo_reclaimed);
|
||||||
|
cleaned_gc_slot = 0;
|
||||||
|
}
|
||||||
gc_rid = MDBX_PNL_LAST(txn->tw.lifo_reclaimed);
|
gc_rid = MDBX_PNL_LAST(txn->tw.lifo_reclaimed);
|
||||||
} else {
|
} else {
|
||||||
mdbx_tassert(txn, txn->tw.last_reclaimed == 0);
|
mdbx_tassert(txn, txn->tw.last_reclaimed == 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user