目录

gitea断电后报500错误

问题描述

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库文件出现损坏。可以通过移除版本来解决此问题。