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.
|
# Otherwise, multiple pipelines could be created in a short interval.
|
||||||
schedule.schedule_next_run!
|
schedule.schedule_next_run!
|
||||||
|
|
||||||
RunPipelineScheduleWorker.perform_async(schedule.id, schedule.owner&.id)
|
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
|
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
|
subject
|
||||||
end
|
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
|
context 'when owner is nil' do
|
||||||
let(:schedule) { create(:ci_pipeline_schedule, project: project, owner: nil) }
|
let(:schedule) { create(:ci_pipeline_schedule, project: project, owner: nil) }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue