New project screen is unusable if user is in a large number of groups.
Summary
Before 11.1 /projects/new would only show you groups if you were master or above but not developer. This was very likely a bug, as developer level was sufficient to create projects. Somewhere between 11.1 and 11.6, that page now correctly shows all groups you can projects in. Clearly the correct thing.....
We didn't notice the issue that groups were being masked, but now that they are being unmasked users can no longer go to /projects/new to create projects. All our users are in 15,000 common groups. These groups are all subgroups of a single group. Just loading the /projects/new page takes 40 seconds. The latest chrome and firefox choke on trying to use the drop down. Finding the correct group is near impossible.
It is impossible for users to successfully create new projects. Our production servers are on 11.1.8 which does not have this problem. However the performance regression of this page is going to block upgrading to later versions.
Steps to reproduce
Add a user to > 15,000 groups. Try to create a project.
What is the current bug behavior?
Using a browser to create new project chokes. After loading the page it is impossible to select a group as the browser stats locking up.
What is the expected correct behavior?
A user in a lot of groups is still able to create a project using the webui.
Results of GitLab environment info
System information
System: Debian 9.7
Proxy: no
Current User: gitqa
Using RVM: no
Ruby Version: 2.5.3p105
Gem Version: 2.7.6
Bundler Version:1.16.6
Rake Version: 12.3.2
Redis Version: 3.2.12
Git Version: 2.18.1
Sidekiq Version:5.2.3
Go Version: unknown
GitLab information
Version: 11.7.5-ee
Revision: ed04633
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
DB Version: 9.6.8
URL: -
HTTP Clone URL: -
SSH Clone URL: -
Elasticsearch: no
Geo: no
Using LDAP: yes
Using Omniauth: yes
Omniauth Providers: kerberos_spnego
GitLab Shell
Version: 8.4.4
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git
Possible fixes
I think a solution is to have it like users. Where it is a text box and you can start typing the group name to have it start populating matches. The drop down with this number of groups is not working for both page load time and usability after the page loads.
Implemented GraphQL Queries For Frontend Implementation
!67641 (merged)
Fetch personal namespace for current user -Sample Query
query fetchUserNamespace {
currentUser {
namespace {
path
id
name
}
}
}
Sample Response
{
"data": {
"currentUser": {
"namespace": {
"path": "mcelicalderon",
"id": "gid://gitlab/Namespace/1",
"name": "Mario Celi"
}
}
}
}
Feature Flag
paginatable_namespace_drop_down_for_project_creation
Release progress:
-
Staging -
Canary -
Production -
Defaulted to on -
Removed