summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2016-03-18 20:26:40 +0000
committerRémy Coutable <remy@rymai.me>2016-03-21 12:37:20 +0100
commitc7f3bee7ff53030355eac6fd28c57c3ab8ff53b3 (patch)
tree2ca6e023fc7884b82e35e656325ea4edbf8cb7f7 /app
parentd22c1069d3a091e0c630aed84f25cef71907ecb5 (diff)
downloadgitlab-ce-c7f3bee7ff53030355eac6fd28c57c3ab8ff53b3.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
Diffstat (limited to 'app')
-rw-r--r--app/services/projects/housekeeping_service.rb2
-rw-r--r--app/workers/gitlab_shell_one_shot_worker.rb10
2 files changed, 11 insertions, 1 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