mdbx: fix GC corruption due deep recursive rebalance from update_gc().

Change-Id: I810250deb25cd625e737000282b434e3158ef8cc
This commit is contained in:
Leonid Yuriev 2019-06-22 01:29:45 +03:00
parent 9cf9d6eac2
commit be0ec1d38d

View File

@ -4322,7 +4322,9 @@ retry:
data.iov_len = (chunk + 1) * sizeof(pgno_t);
mdbx_trace("%s.reserve: %u [%u...%u] @%" PRIaTXN, dbg_prefix_mode, chunk,
settled + 1, settled + chunk + 1, reservation_gc_id);
mc.mc_flags |= C_RECLAIMING;
rc = mdbx_cursor_put(&mc, &key, &data, MDBX_RESERVE | MDBX_NOOVERWRITE);
mc.mc_flags -= C_RECLAIMING;
mdbx_tassert(txn, mdbx_pnl_check(env->me_reclaimed_pglist, true));
if (unlikely(rc != MDBX_SUCCESS))
goto bailout;