Use a separate feature flag to update query in members page
What does this MR do and why?
The new query introduced in !203506 (merged) that uses user_group_member_roles
table when displaying member roles in members page caused an incident.
This MR introduces use_user_group_member_roles_members_page
feature flag to revert back the query used in members page back to the original one without affecting other areas where use_user_group_member_roles
feature flag is used (e.g. ee/app/models/preloaders/user_member_roles_in_groups_preloader.rb
).
Summary
This MR updates ee/app/models/ee/member.rb
to
override :with_group_group_sharing_access
def with_group_group_sharing_access(group)
return super unless ::Feature.enabled?(:use_user_group_member_roles_members_page, ::Feature.current_request)
#
# This MR prevents execution of the following query
#
super.joins("LEFT OUTER JOIN user_group_member_roles ON members.user_id = user_group_member_roles.user_id \
AND user_group_member_roles.group_id = group_group_links.shared_group_id \
AND user_group_member_roles.shared_with_group_id = group_group_links.shared_with_group_id")
end
References
https://gitlab.com/gitlab-org/gitlab/-/issues/575006+
Screenshots or screen recordings
Before | After |
---|---|
How to set up and validate locally
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Edited by Eugie Limpin