Refactor merge_samples() to safely cleanup in case of errors #2135
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.
Refactors the implementation of
merge_samples()
so that, if something goes wrong in the$merge
aggregations, the temporary indexes and frame fields that are created in order to facilitate the merge will be automatically cleaned up.Prior to this change, if a
$merge
failed on a video dataset, the datasets involved would be in broken states until the following operations were manually performed on them:The fatal error was the unexpected
_merge_key
values, but leaving extra indexes laying around is also a party foul.Update: adds some additional
try-finally
blocks in various places throughout the codebase