RepositoryUpdateMirrorWorker fails when local repository is empty
It looks like this started in RC7. The local repo has no HEAD since refs/heads/master
is empty.
$ sudo ls -al /var/opt/gitlab/git-data/repositories/redacted_namespace/mirror.git/refs/heads
total 0
drwxr-xr-x 2 git git 10 Apr 6 13:39 .
drwxr-xr-x 4 git git 41 Apr 6 13:39 ..
/cc: @rdavila
https://sentry.gitlap.com/gitlab/gitlabcom/issues/8873/
Rugged::ReferenceError: Reference 'refs/heads/master' not found
lib/gitlab/metrics/instrumentation.rb:152:in `head'
trans.measure_method(#{label.inspect}) { super }
lib/gitlab/metrics/instrumentation.rb:152:in `block in head'
trans.measure_method(#{label.inspect}) { super }
lib/gitlab/metrics/method_call.rb:23:in `measure'
retval = yield
lib/gitlab/metrics/transaction.rb:71:in `measure_method'
@methods[name].measure(&block)
lib/gitlab/metrics/instrumentation.rb:152:in `head'
trans.measure_method(#{label.inspect}) { super }
...
(79 additional frame(s) were not displayed)
RepositoryUpdateMirrorWorker::UpdateMirrorError: Rugged::ReferenceError: Reference 'refs/heads/master' not found
app/workers/repository_update_mirror_worker.rb:30:in `rescue in perform'
raise UpdateMirrorError, "#{ex.class}: #{Gitlab::UrlSanitizer.sanitize(ex.message)}"
app/workers/repository_update_mirror_worker.rb:14:in `perform'
begin
lib/gitlab/sidekiq_middleware/memory_killer.rb:17:in `call'
yield
lib/gitlab/sidekiq_middleware/arguments_logger.rb:6:in `call'
yield
lib/gitlab/metrics/sidekiq_middleware.rb:13:in `block in call'
trans.run { yield }
...
(25 additional frame(s) were not displayed)