Relax set_*_compaction methods #340
Merged
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.
The various
TraceAgent::set_*_compaction
methods would assert if certain invariants were not satisfied. This clashed a bit with their existing uses which didn't incorporate the initial state of theTraceAgent
into their reasoning, resulting in panics. Uses of these methods with frontiers that are not greater-equal the current compaction frontier are "in error", but this behavior may be more generous and less crashy. Any user can assert that their argument to this call equals the result ofTraceAgent::get_*_compaction
and crash on their own if they prefer, but DD doesn't need to force them to crash.