UpdateMergeRequestsWorker generating very large queries

UpdateMergeRequestsWorker calls MergeRequests::RefreshService which calls merge_request.includes_any_commits?(push_commit_ids) which calls merge_request_diff.commits_by_shas(shas).exists?.

The query generated by merge_request_diff_commits.where(sha: shas) generated a very long SQL string that was filling up the slow query log because there were a lot of SHAs (~60k) for this push.

Relevant line: https://gitlab.com/gitlab-org/gitlab/blob/master/app/models/merge_request.rb#L408

Edited Nov 06, 2019 by Heinrich Lee Yu
Assignee Loading
Time tracking Loading