mdbx: guard put-data inside freelist_save() by C_RECLAIMING (paranoia).

Change-Id: I9cb6bf27717f76dc97259d48e4253a30c2345afd
This commit is contained in:
Leo Yuriev 2017-07-26 10:31:34 +03:00
parent 7626bcfdde
commit 7ed97d50b1

View File

@ -3170,7 +3170,9 @@ again_on_freelist_change:
data.iov_base = rpl_end;
pgno_t save = rpl_end[0];
rpl_end[0] = (pgno_t)chunk_len;
mc.mc_flags |= C_RECLAIMING;
rc = mdbx_cursor_put(&mc, &key, &data, MDBX_CURRENT);
mc.mc_flags ^= C_RECLAIMING;
mdbx_tassert(
txn, cleanup_reclaimed_pos ==
(txn->mt_lifo_reclaimed ? txn->mt_lifo_reclaimed[0] : 0));