# gitea断电后报500错误 ## 问题描述 gitea断电后导致crm的v3.7.0分支访问500错误,其他分支无法pull、clone、push操作。 ## 解决思路 ### 1 查看日志 ``` [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查看报错文件所属项目 ``` [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 ``` [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 解决 ``` [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库文件出现损坏。可以通过移除版本来解决此问题。