问题描述
gitea断电后导致crm的v3.7.0分支访问500错误,其他分支无法pull、clone、push操作。
解决思路
1 查看日志
1
2
3
4
5
6
|
[root@gitea queen.com.git]# grep error /data/gitea/log/gitea.log
....
2021/07/05 15:45:19 routers/repo/http.go:430:serviceRPC() [E] Fail to serve RPC(upload-pack): exit status 128 - error: object file ./objects/b4/f612b16f963127072427e72795dea2986f4ee2 is empty
2021/07/05 15:52:13 routers/repo/http.go:430:serviceRPC() [E] Fail to serve RPC(upload-pack): exit status 128 - error: object file ./objects/b4/f612b16f963127072427e72795dea2986f4ee2 is empty
可以看到有这种报错。
|
2 通过find查看报错文件所属项目
1
2
3
|
[root@gitea queen.com.git]# find /data/gitea/ -name f612b16f963127072427e72795dea2986f4ee2 -type f
/data/gitea/gitea-repositories/golang/sage.com.git/objects/b4/f612b16f963127072427e72795dea2986f4ee2
|
通过查找我们可以发现刚好是发现访问报500错误的项目
3 通过查看refs/heads
1
2
3
4
5
6
7
|
[root@gitea sage.com.git]# ll refs/heads/
total 12
-rw-r--r-- 1 git git 41 May 12 11:10 v3.5.0
-rw-r--r-- 1 git git 41 Jun 30 11:57 v3.6.0
-rw-r--r-- 1 git git 41 Jul 5 11:29 v3.7.0
[root@gitea sage.com.git]# cat refs/heads/v3.7.0
b4f612b16f963127072427e72795dea2986f4ee2
|
可以看到v3.7.0版本记录的uuid就是报错的文件名。
4 解决
1
2
|
[root@gitea queen.com.git]# mv /data/gitea/gitea-repositories/golang/sage.com.git/objects/b4/f612b16f963127072427e72795dea2986f4ee2 /root/
[root@gitea sage.com.git]# mv refs/heads/v3.7.0 /root/
|
总结
导致此现象的原因是由于,在断电的时候,开发人员push没有完成。导致gitea库文件出现损坏。可以通过移除版本来解决此问题。