diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-03-03 14:35:25 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-03-03 14:55:02 +0000 |
commit | f455b53f3733ca0848d04e3587fd3d70c35ebf54 (patch) | |
tree | cce7adb8a022e215b1140419cda000cc1802970e /docker | |
parent | 6f78fdc9750ad3ac03b14166b6838c628487458c (diff) |
Explicitly precompute GlobalId for reference values to avoid lazy init race
This is a workaround for `DocumentId::getGlobalId()`'s lazy GID computation
currently not being thread safe in a `const` context.
The following race was previously possible:
* Attribute writer thread calls `DocumentId::getGlobalId` when applying
the reference value update to a reference attribute. Writes GID and
flag.
* Shared executor thread calls `DocumentId::operator=` with the same ID
instance as the rhs argument when applying the reference value update
to the doc store. Causes a read race with the above write.
Diffstat (limited to 'docker')
0 files changed, 0 insertions, 0 deletions