Update all involved allocators before performing queries over links #4415
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an attempt at a more general solution to the same problem as f045da0. There are several places where queries are using the allocator from one Table while accessing another Table. Rather than attempting to validate that all of them are correct, instead update each Table's WrappedAllocator before running the query so that it doesn't matter which one is used.
AFAICT this is a perfectly safe thing to do, but it's possible I've misunderstood something. It appears that not updating each WrappedAllocator immediately is a perf optimization and not something required for correctness (or maybe there just isn't an easy way to do it?), and this should be thread-safe for frozen transactions as it's assigning to an atomic variable with proper sequencing.