Revert concurrent pipeline schedule creation
This commit reverts the previously introduced concurrent pipeline schedule creation which was a viable solution for mitigating inconsistent pipeline schedule by Sidekiq Memory Killer.
This commit is contained in:
parent
6d68a3a254
commit
36b30cf18e
|
@ -7,7 +7,18 @@ module Ci
|
|||
# Otherwise, multiple pipelines could be created in a short interval.
|
||||
schedule.schedule_next_run!
|
||||
|
||||
if Feature.enabled?(:ci_pipeline_schedule_async)
|
||||
RunPipelineScheduleWorker.perform_async(schedule.id, schedule.owner&.id)
|
||||
else
|
||||
begin
|
||||
RunPipelineScheduleWorker.new.perform(schedule.id, schedule.owner&.id)
|
||||
ensure
|
||||
##
|
||||
# This is the temporary solution for avoiding the memory bloat.
|
||||
# See more https://gitlab.com/gitlab-org/gitlab-ce/issues/61955
|
||||
GC.start if Feature.enabled?(:ci_pipeline_schedule_force_gc, default_enabled: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Revert concurrent pipeline creation for pipeline schedules
|
||||
merge_request: 29794
|
||||
author:
|
||||
type: fixed
|
|
@ -25,6 +25,38 @@ describe Ci::PipelineScheduleService do
|
|||
subject
|
||||
end
|
||||
|
||||
context 'when ci_pipeline_schedule_async feature flag is disabled' do
|
||||
before do
|
||||
stub_feature_flags(ci_pipeline_schedule_async: false)
|
||||
end
|
||||
|
||||
it 'runs RunPipelineScheduleWorker synchronously' do
|
||||
expect_next_instance_of(RunPipelineScheduleWorker) do |worker|
|
||||
expect(worker).to receive(:perform).with(schedule.id, schedule.owner.id)
|
||||
end
|
||||
|
||||
subject
|
||||
end
|
||||
|
||||
it 'calls Garbage Collection manually' do
|
||||
expect(GC).to receive(:start)
|
||||
|
||||
subject
|
||||
end
|
||||
|
||||
context 'when ci_pipeline_schedule_force_gc feature flag is disabled' do
|
||||
before do
|
||||
stub_feature_flags(ci_pipeline_schedule_force_gc: false)
|
||||
end
|
||||
|
||||
it 'does not call Garbage Collection manually' do
|
||||
expect(GC).not_to receive(:start)
|
||||
|
||||
subject
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when owner is nil' do
|
||||
let(:schedule) { create(:ci_pipeline_schedule, project: project, owner: nil) }
|
||||
|
||||
|
|
Loading…
Reference in New Issue