Skip to content

Reload source MRs memoization after diffs creation

Oswaldo Ferreira requested to merge osw-system-notes-for-commits-regression into master

What does this MR do?

Addresses https://gitlab.com/gitlab-org/gitlab-ce/issues/42668.

https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16690 introduces this flaw because it calls merge_requests_for_source_branch before every other method in RefreshService. This method memoizes MRs, which then, gets updated by reload_merge_requests (creating MergeRequestDiff's). In upcoming calls like MergeRequest#commit_shas, the memoized version returns commit_shas of the staled MergeRequestDiff.

To address that, we update the memoized Array, refetching the MRs after getting diffs updated.

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/42668

Merge request reports