diff options
author | Robert Speicher <robert@gitlab.com> | 2016-03-18 20:26:40 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2016-03-18 20:26:40 +0000 |
commit | c790107854658a37d97b9a1c9066338eb12b06bf (patch) | |
tree | bc1c55851f7a78c0453a6a99be7b1a12af3e14e9 | |
parent | 49534a65963f6bb1bda57230ae9c320037fc176b (diff) | |
parent | 5d9cf7b415f58b15a28ec4c7a3c6563a49e02981 (diff) | |
download | gitlab-ce-c790107854658a37d97b9a1c9066338eb12b06bf.tar.gz |
Merge branch 'no-gc-retry' into 'master'
Do not retry "git gc"
To prevent 'git gc' timing out on a large repo and then bouncing
around in the retry queue.
See merge request !3266
-rw-r--r-- | app/services/projects/housekeeping_service.rb | 2 | ||||
-rw-r--r-- | app/workers/gitlab_shell_one_shot_worker.rb | 10 | ||||
-rw-r--r-- | spec/services/projects/housekeeping_service_spec.rb | 4 |
3 files changed, 13 insertions, 3 deletions
diff --git a/app/services/projects/housekeeping_service.rb b/app/services/projects/housekeeping_service.rb index bccd67d3dbf..a0973c5d260 100644 --- a/app/services/projects/housekeeping_service.rb +++ b/app/services/projects/housekeeping_service.rb @@ -24,7 +24,7 @@ module Projects def execute raise LeaseTaken if !try_obtain_lease - GitlabShellWorker.perform_async(:gc, @project.path_with_namespace) + GitlabShellOneShotWorker.perform_async(:gc, @project.path_with_namespace) ensure @project.update_column(:pushes_since_gc, 0) end diff --git a/app/workers/gitlab_shell_one_shot_worker.rb b/app/workers/gitlab_shell_one_shot_worker.rb new file mode 100644 index 00000000000..4ddbcf574d5 --- /dev/null +++ b/app/workers/gitlab_shell_one_shot_worker.rb @@ -0,0 +1,10 @@ +class GitlabShellOneShotWorker + include Sidekiq::Worker + include Gitlab::ShellAdapter + + sidekiq_options queue: :gitlab_shell, retry: false + + def perform(action, *arg) + gitlab_shell.send(action, *arg) + end +end diff --git a/spec/services/projects/housekeeping_service_spec.rb b/spec/services/projects/housekeeping_service_spec.rb index 93bf1b81fbe..4c5ced7e746 100644 --- a/spec/services/projects/housekeeping_service_spec.rb +++ b/spec/services/projects/housekeeping_service_spec.rb @@ -12,7 +12,7 @@ describe Projects::HousekeepingService do it 'enqueues a sidekiq job' do expect(subject).to receive(:try_obtain_lease).and_return(true) - expect(GitlabShellWorker).to receive(:perform_async).with(:gc, project.path_with_namespace) + expect(GitlabShellOneShotWorker).to receive(:perform_async).with(:gc, project.path_with_namespace) subject.execute expect(project.pushes_since_gc).to eq(0) @@ -20,7 +20,7 @@ describe Projects::HousekeepingService do it 'does not enqueue a job when no lease can be obtained' do expect(subject).to receive(:try_obtain_lease).and_return(false) - expect(GitlabShellWorker).not_to receive(:perform_async) + expect(GitlabShellOneShotWorker).not_to receive(:perform_async) expect { subject.execute }.to raise_error(Projects::HousekeepingService::LeaseTaken) expect(project.pushes_since_gc).to eq(0) |