[0.17] Make persistRun transactional #2244
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.
Backport: #2243
Fixes Issue
Fixes #2242
Changes proposed
After deeper investigations it turned out the bug was introduced with #2172 that basically removed the
@Transactional
annotation around thepersistRun
method, which is the one invoked by theupload-run
async emitter.My guess is that, given that there is not explicit transaction wrapping that method the
roleManager.setRoles(String.join(",", runUpload.roles));
instructions is not visible from the rest of the logic (where the run is persisted) resulting in missing roles at the db level.Changes:
@Transactional
to thepersistRun
methodtext/plain
Check List (Check all the applicable boxes)