Geo: Fix error capture when repository syncing fails
Problem to solve
When investigating some container repository weirdness for an RFH I stumbled upon a recent code change from !185424 (merged). The code doesn't do exactly what it's supposed to do according to the issue.
To demonstrate this I added the following test:
let(:tags) { [{ name: '1', digest: 'sha256:123' }, { name: '2', digest: 'sha256:456' }, { name: '3', digest: 'sha256:789' }] }
let(:failed_tag) { tags.second }
it 'continues execution', :aggregate_failures do
expect(subject).to receive(:sync_tag).with(tags.first)
expect(subject).to receive(:sync_tag).with(tags.last)
endexpected: 1 time with arguments: ({:digest=>"sha256:789", :name=>"3"})
received: 0 timeswhich means that the loop never reached tags.last.
Proposal & Implementation
Revert commit !185424 (e4f12dd7) to only log the error instead of track_and_raise which stops the tags loop.
Relates to
Edited by 🤖 GitLab Bot 🤖