gerrit无法创建更改:推送审核时的LOCK_FAILURE

时间:2016-09-08 00:29:33

标签: git gerrit

我已经交了很多git repos,我已经创建了镜像。我试图推动gerrit审查时遇到以下错误

blake-macbook:repo blake$ git push ssh://gerrit-new/repo HEAD:refs/for/master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 359 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2)
remote: Processing changes: refs: 2, done    
To ssh://gerrit-new/repo
! [remote rejected] HEAD -> refs/for/master (Unable to create changes:LOCK_FAILURE)
error: failed to push some refs to 'ssh://gerrit-new/repo'

Gerrit以自己的用户身份运行。我已经检查了文件系统权限并且已经刷新它们以防万一

chown -R gerrit.gerrit /home/gerrit/review-site

日志没有显示任何有用的信息

[2016-09-08 00:07:45,071] [ReceiveCommits-1] ERROR com.google.gerrit.server.git.ReceiveCommits : Command CREATE on repo:refs/changes/54/54/1 not completed: LOCK_FAILURE
[2016-09-08 00:07:45,072] [ReceiveCommits-1] ERROR com.google.gerrit.server.git.ReceiveCommits : Only 0 of 1 new change refs created in repo; aborting

我已经创建了一个群组调用“项目潜在客户”,几乎授予了默认的All-Projects访问方案中的每个权限,确保我的项目继承自All-Projects。

我还将我的测试用户添加到了Administrators组...没有骰子。同样的错误。

奇怪的是,它在5天前工作正常。我唯一要做的就是检查一个新分支,尝试提交到新分支(得到错误),现在每次提交都会出现错误(好吧,我尝试过的所有内容)

如果我绕过审核,它会推得很好(虽然次优的解决方法)

任何帮助表示赞赏

编辑:如果你想知道ssh服务器/端口我在ssh配置文件上设置了

Host gerrit-new
    HostName        <server>
    Port            29418
    User            <user>
    IdentityFile    ~/.ssh/<priv_key.rsa>

EDIT2:还尝试重启,重新索引,重启,并手动删除write.lock文件

3 个答案:

答案 0 :(得分:1)

我们的服务器意外重启后,gerrit的数据库数据丢失了,帐户和提交信息也丢失了。我必须重新安装gerrit数据库。当我重新建立Gerrit索引时,我将重现此错误。重新将本地分支推送到远程,重新启动服务,然后不再报告此错误。希望可以帮助您。

Git remote remove origin
 
Git remote add origin ssh://XXXX@192.168.XX.XXX:29418/you_pro

Git push -u origin master

答案 1 :(得分:0)

您是否已经看过以下旧线程?

https://groups.google.com/forum/#!topic/repo-discuss/nvUnY346y14

https://bugs.chromium.org/p/gerrit/issues/detail?id=1593

也许他们可以帮助你或给出一些想法......

答案 2 :(得分:0)

我刚刚使用命令将提交的更改还原到登台区域 git reset --soft HEAD〜1

然后重试。它对我有用。