[FF] ci_skip_fork_mr_lookup_for_non_forks -- Skip fork MR lookup in Ci::Pipeline#all_merge_requests for non-forks
Summary
Roll out the fix currently behind the ci_skip_fork_mr_lookup_for_non_forks feature flag, introduced by !244120 (merged).
- DRI: @sasharma13
- Team Slack channel:
#g_pipeline-authoring
Note
Process and guidance live in the docs — this issue is just the commands and a place to track the rollout. "Rolling out" means incrementally enabling the flag on GitLab.com to validate stability — it is not the same as releasing the feature, which happens when the flag is removed. Feature flag controls · Feature flag lifecycle
What could go wrong?
The flag makes Ci::Pipeline#all_merge_requests skip the fork-target pluck for non-fork projects. If the skip is wrong for a given project shape, branch pipelines on flag-enabled projects could miss MRs in all_merge_requests consumers (related MRs on the pipeline page, head-pipeline updates, auto-merge processing). No data loss is possible; disabling the flag restores the original query immediately.
Watch: merge_requests slow-query logs (the fork-pluck query should disappear for enabled projects) and pipeline-page error rates on https://dashboards.gitlab.net.
Rollout
Plan: enable for the affected customer's group first (see request-for-help#4998), confirm the fork-pluck query disappears from slow-query logs and the group's pipeline pages stop timing out, then evaluate broader rollout.
Run all production /chatops in #production and cross-post the results to #g_pipeline-authoring. Background: incremental rollout process, feature actors.
Non-production
/chatops gitlab run feature set ci_skip_fork_mr_lookup_for_non_forks 50 --actors --dev --pre --staging --staging-ref
/chatops gitlab run feature set ci_skip_fork_mr_lookup_for_non_forks true --dev --pre --staging --staging-refProduction — percentage rollout (wait ≥15 min between steps, watch dashboards):
/chatops gitlab run feature set ci_skip_fork_mr_lookup_for_non_forks <percentage> --actorsOr target specific actors instead:
/chatops gitlab run feature set --group=<affected-customer-group> ci_skip_fork_mr_lookup_for_non_forks true
/chatops gitlab run feature set --project=<affected-customer-project> ci_skip_fork_mr_lookup_for_non_forks trueBefore global rollout
Confirm the relevant gotchas before going to 100% — see enabling a feature for GitLab.com:
- Docs + version history updated
- Breaking changes announced, if any
- Change management issue opened, if required
- External API consumers handled with a fail-open mechanism, if applicable
Cleanup
Remove the flag once deemed stable — see cleaning up. Track it here, or open a follow-up Feature Flag Cleanup issue. Remove the flag and its YAML definition from the codebase, then:
/chatops gitlab run release check <merge-request-url> <milestone>
/chatops gitlab run feature delete ci_skip_fork_mr_lookup_for_non_forks --dev --pre --staging --staging-ref --productionRollback
/chatops gitlab run feature set ci_skip_fork_mr_lookup_for_non_forks false # production
/chatops gitlab run feature set ci_skip_fork_mr_lookup_for_non_forks false --dev --pre --staging --staging-ref # non-production
/chatops gitlab run feature delete ci_skip_fork_mr_lookup_for_non_forks --dev --pre --staging --staging-ref --production # remove entirely