diff options
author | Stan Hu <stanhu@gmail.com> | 2016-07-08 12:32:58 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-07-12 05:42:19 -0700 |
commit | 3dc6bf2b71f995a3b6ca40ebbf9abb5c11397b8b (patch) | |
tree | 80fdf211e03d5eb265d68e62a83eb784f150174b /spec/workers/git_garbage_collect_worker_spec.rb | |
parent | 3ca9253444710c6a2d5ad4dca345f8d558be4f1a (diff) | |
download | gitlab-ce-3dc6bf2b71f995a3b6ca40ebbf9abb5c11397b8b.tar.gz |
Expire the branch cache after `git gc` runs
Due to a stale NFS cache, it's possible that a branch lookup fails
while `git gc` is running and causes missing branches in merge requests.
Possible workaround for #15392
Diffstat (limited to 'spec/workers/git_garbage_collect_worker_spec.rb')
-rw-r--r-- | spec/workers/git_garbage_collect_worker_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/workers/git_garbage_collect_worker_spec.rb b/spec/workers/git_garbage_collect_worker_spec.rb new file mode 100644 index 00000000000..a9cce8b8b59 --- /dev/null +++ b/spec/workers/git_garbage_collect_worker_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper' + +describe GitGarbageCollectWorker do + let(:project) { create(:project) } + let(:shell) { Gitlab::Shell.new } + + subject { GitGarbageCollectWorker.new } + + before do + allow(subject).to receive(:gitlab_shell).and_return(shell) + end + + describe "#perform" do + it "runs `git gc`" do + expect(shell).to receive(:gc).with( + project.repository_storage_path, + project.path_with_namespace). + and_return(true) + expect_any_instance_of(Repository).to receive(:after_create_branch) + + subject.perform(project.id) + end + end +end |