Skip to content

Fix N+1 Gitaly calls in /api/v4/projects/:id/issues

Stan Hu requested to merge sh-fix-nplusone-issues into master

This is a follow-up from https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/31938.

In GitLab 9.0, https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9661 removed the subscribed flag from the API when the user requested a list of issues or merge requests since calculating this value triggers extensive Markdown processing.

In GitLab 12.0 via a4fbf39e, we accidentally reintroduced this performance regression by changing IssueBasic to Issue in entities.rb. This showed up as a Gitaly N+1 issue since the Markdown processing would attempt to extract a commit if it detected a regex that matched a commit.

We restore the prior behavior by once again removing the subscribed flag for the bulk list of issues and merge requests and add a test to ensure they aren't reintroduced.

Relates to https://gitlab.com/gitlab-org/gitlab-ce/issues/66202

Edited by Stan Hu

Merge request reports