diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2022-11-04 16:14:31 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-08 22:05:36 +0000 |
commit | ac5d0034debcc646ffe610f8d63302c25a3598b7 (patch) | |
tree | 313fa308a250668ca9042fc1454c583cf59e3eda /LICENSE-Community.txt | |
parent | 50e767b1dbbd5104959989e056d3bd04b6119748 (diff) | |
download | mongo-ac5d0034debcc646ffe610f8d63302c25a3598b7.tar.gz |
SERVER-70879 Fix race where multiple threads are turning an index multikey concurrently
Fix race where the writes to the durable catalog are serialized but the second writer is using a stale in-memory state due to the commit handler not being executed yet. This interleaving does not cause a write conflict as the writes are serialized but the second writer overwrote the multikey paths set by the first writer.
To handle it we always read the latest state from the durable catalog before performing multikey writes. This guarantees that we always are operating on the latest state. Some care was needed to ensure index offsets remain stable.
(cherry picked from commit 74bf9118e38ff4ee63db8bb17146dabe3ef07392)
Diffstat (limited to 'LICENSE-Community.txt')
0 files changed, 0 insertions, 0 deletions