mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-19 13:23:44 -05:00
ITS#7970 LMDB: Critical Heisenbug
Inconsistent reading & SIGSEGV due to the race condition.
This commit is contained in:
parent
9a80a8a8e8
commit
bd6d2e6f2c
1 changed files with 4 additions and 1 deletions
|
|
@ -2558,7 +2558,10 @@ mdb_txn_renew0(MDB_txn *txn)
|
|||
return rc;
|
||||
}
|
||||
}
|
||||
txn->mt_txnid = r->mr_txnid = ti->mti_txnid;
|
||||
do /* LY: Retry on a race, ITS#7970. */
|
||||
r->mr_txnid = ti->mti_txnid;
|
||||
while(r->mr_txnid != ti->mti_txnid);
|
||||
txn->mt_txnid = r->mr_txnid;
|
||||
txn->mt_u.reader = r;
|
||||
meta = env->me_metas[txn->mt_txnid & 1];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue