Merge branch 'zj-ensure-link-pool-repo-gc' into 'master'
Ensure pool participants are linked before GC Closes gitaly#1354 See merge request gitlab-org/gitlab-ce!24230
This commit is contained in:
commit
c01c487cf0
|
@ -2039,6 +2039,10 @@ class Project < ActiveRecord::Base
|
|||
pool_repository&.unlink_repository(repository) && update_column(:pool_repository_id, nil)
|
||||
end
|
||||
|
||||
def link_pool_repository
|
||||
pool_repository&.link_repository(repository)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def merge_requests_allowing_collaboration(source_branch = nil)
|
||||
|
|
|
@ -23,6 +23,7 @@ class GitGarbageCollectWorker
|
|||
end
|
||||
|
||||
task = task.to_sym
|
||||
project.link_pool_repository
|
||||
gitaly_call(task, project.repository.raw_repository)
|
||||
|
||||
# Refresh the branch cache in case garbage collection caused a ref lookup to fail
|
||||
|
|
|
@ -5,14 +5,13 @@ module ObjectPool
|
|||
include ApplicationWorker
|
||||
include ObjectPoolQueue
|
||||
|
||||
def perform(pool_id, project_id)
|
||||
pool = PoolRepository.find_by_id(pool_id)
|
||||
return unless pool&.joinable?
|
||||
|
||||
# The use of pool id is deprecated. Keeping the argument allows old jobs to
|
||||
# still be performed.
|
||||
def perform(_pool_id, project_id)
|
||||
project = Project.find_by_id(project_id)
|
||||
return unless project
|
||||
return unless project&.pool_repository&.joinable?
|
||||
|
||||
pool.link_repository(project.repository)
|
||||
project.link_pool_repository
|
||||
|
||||
Projects::HousekeepingService.new(project).execute
|
||||
end
|
||||
|
|
|
@ -71,6 +71,17 @@ describe GitGarbageCollectWorker do
|
|||
|
||||
subject.perform(project.id)
|
||||
end
|
||||
|
||||
context 'when the repository has joined a pool' do
|
||||
let!(:pool) { create(:pool_repository, :ready) }
|
||||
let(:project) { pool.source_project }
|
||||
|
||||
it 'ensures the repositories are linked' do
|
||||
expect_any_instance_of(PoolRepository).to receive(:link_repository).once
|
||||
|
||||
subject.perform(project.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when no lease can be obtained' do
|
||||
|
|
Loading…
Reference in New Issue