diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 98f1931ce5ea02c72f55596819098ed0a9a371d1..b8eca3def022e5604bed178a8ce64547b87a0006 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1904,13 +1904,7 @@ def rebase_on_merge_path end def schedule_cleanup_refs(only: :all) - if Feature.enabled?(:merge_request_delete_gitaly_refs_in_batches, target_project) - async_cleanup_refs(only: only) - elsif Feature.enabled?(:merge_request_cleanup_ref_worker_async, target_project) - MergeRequests::CleanupRefWorker.perform_async(id, only.to_s) - else - cleanup_refs(only: only) - end + async_cleanup_refs(only: only) end def refs_to_cleanup(only: :all) diff --git a/config/feature_flags/development/merge_request_delete_gitaly_refs_in_batches.yml b/config/feature_flags/development/merge_request_delete_gitaly_refs_in_batches.yml deleted file mode 100644 index 0f0b81dbbd281bd7cf09141e693faefe6a8e798f..0000000000000000000000000000000000000000 --- a/config/feature_flags/development/merge_request_delete_gitaly_refs_in_batches.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: merge_request_delete_gitaly_refs_in_batches -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125333 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/416969 -milestone: '16.3' -type: development -group: group::gitaly -default_enabled: false diff --git a/doc/user/project/repository/monorepos/troubleshooting.md b/doc/user/project/repository/monorepos/troubleshooting.md index 769a6094caa44ffa916d756957993bf7d0edb736..ae627a6fa13cbaa23b9d7325c22027779ef61b4f 100644 --- a/doc/user/project/repository/monorepos/troubleshooting.md +++ b/doc/user/project/repository/monorepos/troubleshooting.md @@ -91,7 +91,8 @@ These feature flags do not need downtime to enable. - `merge_request_cleanup_ref_worker_async` - `pipeline_cleanup_ref_worker_async` - `pipeline_delete_gitaly_refs_in_batches` -- `merge_request_delete_gitaly_refs_in_batches` + +> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/416969) in GitLab 18.5. Feature flag `merge_request_delete_gitaly_refs_in_batches` removed. [Epic 4220](https://gitlab.com/groups/gitlab-org/-/epics/4220) proposes to add RefTable support in GitLab, which is considered a long-term solution. diff --git a/ee/app/models/merge_trains/car.rb b/ee/app/models/merge_trains/car.rb index b6cb59c1d5eaf6d0c0468984c2592ef09e5948ea..87f839f96eada02e25686a2d6672d429222c77f6 100644 --- a/ee/app/models/merge_trains/car.rb +++ b/ee/app/models/merge_trains/car.rb @@ -179,8 +179,7 @@ def first_car? def try_cleanup_ref(async: true) # The async variant isn't necessarily async, it depends on the feature - # flags merge_request_delete_gitaly_refs_in_batches and - # merge_request_cleanup_ref_worker_async + # flag merge_request_cleanup_ref_worker_async cleanup_ref(async: async) rescue ::Gitlab::Git::BaseError => e Gitlab::ErrorTracking.track_exception(e) diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index dbe3bb4ab407d43a2402f3b2aea34691fa1a6ed3..0e95a7ba5ce137f974826ea19b08b7e8bc8ed74f 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -6164,30 +6164,25 @@ def transition! subject end - context 'when merge_request_delete_gitaly_refs_in_batches is disabled' do - before do - stub_feature_flags(merge_request_delete_gitaly_refs_in_batches: false) - end + it 'deletes refs asynchronously' do + expect(merge_request.target_project.repository) + .to receive(:async_delete_refs) + .with(merge_request.train_ref_path) - it 'does schedule MergeRequests::CleanupRefWorker' do - expect(MergeRequests::CleanupRefWorker).to receive(:perform_async).with(merge_request.id, 'train') + subject + end - subject + context 'when merge_request_cleanup_ref_worker_async is disabled' do + before do + stub_feature_flags(merge_request_cleanup_ref_worker_async: false) end - context 'when merge_request_cleanup_ref_worker_async is disabled' do - before do - stub_feature_flags(merge_request_delete_gitaly_refs_in_batches: false) - stub_feature_flags(merge_request_cleanup_ref_worker_async: false) - end - - it 'deletes all refs from the target project' do - expect(merge_request.target_project.repository) - .to receive(:delete_refs) - .with(merge_request.train_ref_path) + it 'deletes all refs from the target project' do + expect(merge_request.target_project.repository) + .to receive(:delete_refs) + .with(merge_request.train_ref_path) - subject - end + subject end end end diff --git a/spec/services/merge_requests/cleanup_refs_service_spec.rb b/spec/services/merge_requests/cleanup_refs_service_spec.rb index a80a29b220abc32c44df2de3a93ca3e6f55cacf7..404f8b27c3bebb601fab204397f4f904d581481d 100644 --- a/spec/services/merge_requests/cleanup_refs_service_spec.rb +++ b/spec/services/merge_requests/cleanup_refs_service_spec.rb @@ -18,7 +18,6 @@ describe '#execute' do before do - stub_feature_flags(merge_request_delete_gitaly_refs_in_batches: false) stub_feature_flags(merge_request_cleanup_ref_worker_async: false) merge_request.create_cleanup_schedule(scheduled_at: described_class::TIME_THRESHOLD.ago)