A little more information - I found the gitaly
log has this about that repo (during a restore):
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGCX8GNAF63MJ9A8HD5VP","diskcache":"3680e2d1-994d-4426-ac2a-746112a604a1","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/ansible","grpc.request.glRepository":"","grpc.request.repoPath":"@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.git","grpc.request.repoStorage":"default","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.344","level":"info","msg":"diskcache state change","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.352Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGCX8GNAF63MJ9A8HD5VP","error":"repository does not exist","grpc.code":"NotFound","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/ansible","grpc.request.glRepository":"","grpc.request.payload_bytes":111,"grpc.request.repoPath":"@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.git","grpc.request.repoStorage":"default","grpc.response.payload_bytes":0,"grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.344","grpc.time_ms":8.357,"level":"info","msg":"finished unary call with code NotFound","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.353Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGCXHDCZF3MMYD6E3N95T","diskcache":"7c25e160-d3b4-4c89-8784-ced7529b4c44","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/ansible.wiki","grpc.request.glRepository":"","grpc.request.repoPath":"@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.wiki.git","grpc.request.repoStorage":"default","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.353","level":"info","msg":"diskcache state change","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.358Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGCXHDCZF3MMYD6E3N95T","error":"repository does not exist","grpc.code":"NotFound","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/ansible.wiki","grpc.request.glRepository":"","grpc.request.payload_bytes":121,"grpc.request.repoPath":"@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.wiki.git","grpc.request.repoStorage":"default","grpc.response.payload_bytes":0,"grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.353","grpc.time_ms":5.977,"level":"info","msg":"finished unary call with code NotFound","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.359Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGCXJQAM9RRM7PK73YVAY","diskcache":"0d6e196e-f1b0-4760-90cd-da8a545408f0","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/ansible.design","grpc.request.glRepository":"","grpc.request.repoPath":"@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.design.git","grpc.request.repoStorage":"default","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.354","level":"info","msg":"diskcache state change","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.363Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGCXJQAM9RRM7PK73YVAY","error":"repository does not exist","grpc.code":"NotFound","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/ansible.design","grpc.request.glRepository":"","grpc.request.payload_bytes":125,"grpc.request.repoPath":"@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.design.git","grpc.request.repoStorage":"default","grpc.response.payload_bytes":0,"grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.354","grpc.time_ms":9.481,"level":"info","msg":"finished unary call with code NotFound","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.364Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGD7FJXKKAX1R5RKHSWHJ","diskcache":"9b058293-bc51-4945-b78d-a6afef4e5145","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/field-ansible","grpc.request.glRepository":"","grpc.request.repoPath":"@hashed/c6/f3/c6f3ac57944a531490cd39902d0f777715fd005efac9a30622d5f5205e7f6894.git","grpc.request.repoStorage":"default","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.671","level":"info","msg":"diskcache state change","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.680Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGD7FJXKKAX1R5RKHSWHJ","error":"repository does not exist","grpc.code":"NotFound","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/field-ansible","grpc.request.glRepository":"","grpc.request.payload_bytes":117,"grpc.request.repoPath":"@hashed/c6/f3/c6f3ac57944a531490cd39902d0f777715fd005efac9a30622d5f5205e7f6894.git","grpc.request.repoStorage":"default","grpc.response.payload_bytes":0,"grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.671","grpc.time_ms":9.989,"level":"info","msg":"finished unary call with code NotFound","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.681Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGD7M226QAKXN2C7FZF3Y","diskcache":"f0e5ade5-e677-4cc1-9da7-3b2ddfe7bfad","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/field-ansible.wiki","grpc.request.glRepository":"","grpc.request.repoPath":"@hashed/c6/f3/c6f3ac57944a531490cd39902d0f777715fd005efac9a30622d5f5205e7f6894.wiki.git","grpc.request.repoStorage":"default","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.676","level":"info","msg":"diskcache state change","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.684Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGD7M226QAKXN2C7FZF3Y","error":"repository does not exist","grpc.code":"NotFound","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/field-ansible.wiki","grpc.request.glRepository":"","grpc.request.payload_bytes":127,"grpc.request.repoPath":"@hashed/c6/f3/c6f3ac57944a531490cd39902d0f777715fd005efac9a30622d5f5205e7f6894.wiki.git","grpc.request.repoStorage":"default","grpc.response.payload_bytes":0,"grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.676","grpc.time_ms":9.257,"level":"info","msg":"finished unary call with code NotFound","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.686Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGD7SYG0FPJ1W65ZFVKH8","diskcache":"1257564e-b7f2-4c4c-965b-17a530e9012e","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/field-ansible.design","grpc.request.glRepository":"","grpc.request.repoPath":"@hashed/c6/f3/c6f3ac57944a531490cd39902d0f777715fd005efac9a30622d5f5205e7f6894.design.git","grpc.request.repoStorage":"default","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.681","level":"info","msg":"diskcache state change","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.689Z"}
{"component":"gitaly.UnaryServerInterceptor","correlation_id":"01HMXHGD7SYG0FPJ1W65ZFVKH8","error":"repository does not exist","grpc.code":"NotFound","grpc.meta.deadline_type":"none","grpc.meta.method_operation":"mutator","grpc.meta.method_scope":"repository","grpc.meta.method_type":"unary","grpc.method":"RemoveRepository","grpc.request.fullMethod":"/gitaly.RepositoryService/RemoveRepository","grpc.request.glProjectPath":"devops/field-ansible.design","grpc.request.glRepository":"","grpc.request.payload_bytes":132,"grpc.request.repoPath":"@hashed/c6/f3/c6f3ac57944a531490cd39902d0f777715fd005efac9a30622d5f5205e7f6894.design.git","grpc.request.repoStorage":"default","grpc.response.payload_bytes":0,"grpc.service":"gitaly.RepositoryService","grpc.start_time":"2024-01-24T10:50:58.681","grpc.time_ms":7.846,"level":"info","msg":"finished unary call with code NotFound","pid":62395,"span.kind":"server","system":"grpc","time":"2024-01-24T10:50:58.689Z"}
I also find nothing much in /var/opt/gitlab/git-data
, where I do find my repositories there on the main server. It really has not restored anything on the backup server - so it’s definitely a git/gitaly issue, rather than a database migrations problem.
The backups DO contain the repositories, and I see during the restore process that these are extracted to disk (in their hashed directory names) - so I’m slightly happier than I am making useful backups, even if I can’t (yet) restore them correctly (my guess is I could probably do something with a restore if I absolutely had to).