MergeWorker fails when attempting to create keep-around reference
I'm not sure how this corruption occurs, but perhaps we need to be more robust since the merge should happen.
https://sentry.gitlap.com/gitlab/gitlabcom/issues/9708/
Rugged::ReferenceError: Corrupted loose reference file: refs/keep-around/a2ac4c7f8b1d5ffadc470739e39f9f1bc1f55801
app/models/repository.rb:282:in `create'
rugged.references.create(keep_around_ref_name(sha), sha)
app/models/repository.rb:282:in `keep_around'
rugged.references.create(keep_around_ref_name(sha), sha)
app/models/merge_request.rb:818:in `keep_around_commit'
project.repository.keep_around(self.merge_commit_sha)
app/services/merge_requests/merge_service.rb:62:in `commit'
merge_request.update(merge_commit_sha: commit_id)
lib/gitlab/metrics/instrumentation.rb:152:in `block in commit'
trans.measure_method(#{label.inspect}) { super }
...
(86 additional frame(s) were not displayed)
Rugged::ReferenceError: Corrupted loose reference file: refs/keep-around/a2ac4c7f8b1d5ffadc470739e39f9f1bc1f55801
app/models/repository.rb:270:in `exist?'
rugged.references.exist?(ref)
app/models/repository.rb:270:in `ref_exists?'
rugged.references.exist?(ref)
app/models/repository.rb:286:in `kept_around?'
ref_exists?(keep_around_ref_name(sha))
app/models/repository.rb:280:in `keep_around'
return if kept_around?(sha)
app/models/merge_request.rb:818:in `keep_around_commit'
project.repository.keep_around(self.merge_commit_sha)
...
(89 additional frame(s) were not displayed)
Rugged::ReferenceError: Corrupted loose reference file: refs/keep-around/a2ac4c7f8b1d5ffadc470739e39f9f1bc1f55801
app/models/repository.rb:270:in `exist?'
rugged.references.exist?(ref)
app/models/repository.rb:270:in `ref_exists?'
rugged.references.exist?(ref)
app/models/repository.rb:286:in `kept_around?'
ref_exists?(keep_around_ref_name(sha))
app/models/repository.rb:280:in `keep_around'
return if kept_around?(sha)
app/models/merge_request.rb:818:in `keep_around_commit'
project.repository.keep_around(self.merge_commit_sha)
...
(89 additional frame(s) were not displayed)
Rugged::ReferenceError: Corrupted loose reference file: refs/keep-around/a2ac4c7f8b1d5ffadc470739e39f9f1bc1f55801
app/models/repository.rb:270:in `exist?'
rugged.references.exist?(ref)
app/models/repository.rb:270:in `ref_exists?'
rugged.references.exist?(ref)
app/models/repository.rb:286:in `kept_around?'
ref_exists?(keep_around_ref_name(sha))
app/models/repository.rb:280:in `keep_around'
return if kept_around?(sha)
app/models/merge_request.rb:818:in `keep_around_commit'
project.repository.keep_around(self.merge_commit_sha)
...
(106 additional frame(s) were not displayed)