Merge branch 'sh-cleanup-after-git-gc' into 'master'

Release libgit2 cache and open file descriptors after `git gc` run

See merge request gitlab-org/gitlab-ce!17506
This commit is contained in:
Robert Speicher 2018-03-05 21:51:49 +00:00
commit 62d6f1ed66
3 changed files with 15 additions and 0 deletions

View file

@ -44,6 +44,10 @@ class GitGarbageCollectWorker
# Refresh the branch cache in case garbage collection caused a ref lookup to fail
flush_ref_caches(project) if task == :gc
# In case pack files are deleted, release libgit2 cache and open file
# descriptors ASAP instead of waiting for Ruby garbage collection
project.cleanup
ensure
cancel_lease(lease_key, lease_uuid) if lease_key.present? && lease_uuid.present?
end

View file

@ -0,0 +1,5 @@
---
title: Release libgit2 cache and open file descriptors after `git gc` run
merge_request:
author:
type: fixed

View file

@ -195,6 +195,12 @@ describe GitGarbageCollectWorker do
expect(File.exist?(bitmap_path(after_packs.first))).to eq(bitmaps_enabled)
end
it 'cleans up repository after finishing' do
expect_any_instance_of(Project).to receive(:cleanup).and_call_original
subject.perform(project.id, 'gc', lease_key, lease_uuid)
end
end
context 'with bitmaps enabled' do