Skip to content

Fork interface with "Prevent forking outside a group" is extremely slow

Summary

GitLab.COM (and any nightly build of gitlab after 2020-08-04 / a4dfe1f2) now has the option to prevent forking outside a group, and a revised list-like project-forking interface.

With "Prevent forking outside of the group" enabled, the time to display all possible fork locations has increased 4-5x versus 13.2's interface.

This performance regression is so severe as to have completely broken the forking feature for this customer.

Steps to reproduce

I created the attached screengrabs by deploying a docker-based gitlab/gitlab-ee:nightly instance and creating ~2000 empty groups under a top-level group, and a project with a single file.

Example Project

Screencaps

Showing 13.2 (Screen_Recording_2020-08-12_at_1.52.01_PM) vs 13.3.pre (nightly_fork.mp4) performance:

Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's tough to read otherwise.)

Output of checks

This bug happens on GitLab.com and on any self-managed instance >13.3

Possible fixes

Perhaps we should consider progressively loading available subgroups for fork locations on a page-by-page basis rather than all-up-front.

Edited by Jamie Reid