格里特:开始失败,没有日志

时间:2018-03-21 04:40:25

标签: gerrit

Fedora 27,openjdk 1.8.0和Gerrit 2.14.7。

这就是我得到的:

gerrit_testsite/bin/gerrit.sh start
Starting Gerrit Code Review: FAILED

日志为空。有gerrit.pid个文件;相应的进程正在运行:

GerritCodeReview -jar /home/gerrit2/gerrit_testsite/bin/gerrit.war daemon -d /home/gerrit2/gerrit_testsite --run-id=1521606266.3474

但是没有任何东西在配置的端口8080上监听。

当我添加-x选项时,我可以看到gerrit.sh脚本正在等待gerrit.run文件出现 - 这不会发生。

我尝试将超时时间增加到600秒。

我试过了gerrit.sh run。这会创建一个包含两个警告的错误日志:

[main] WARN  com.google.gerrit.sshd.SshDaemon : Cannot format SSHD host key [EdDSA]: invalid key type
[main] WARN  com.google.gerrit.server.config.GitwebCgiConfig : gitweb not installed (no /usr/lib/cgi-bin/gitweb.cgi found)

再一次,8080都没有听。

我相信我第一次能够运行Gerrit。我不得不更改canonicalWebUrl参数,重新启动Gerrit并且从那时起就遇到了问题。我删除了我的gerrit_testsite目录并重新初始化它,但启动它仍然失败。

什么是SSHD密钥警告?我需要gitweb吗?还有什么地方可以看?

编辑:我从一个新的Fedora安装重新启动。然后:

$ java -jar gerrit.war init -d ~/review-site
....
Initialized /home/gerrit2/review-site
Executing /home/gerrit2/review-site/bin/gerrit.sh start
Starting Gerrit Code Review: FAILED
error: cannot start Gerrit: exit status 1
Waiting for server on 192.168.1.201:8080 ... OK
Opening http://192.168.1.201:8080/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
  http://192.168.1.201:8080/#/admin/projects/

尽管收到了FAILED消息,我确实在logs目录中找到了gerrit.run文件。 error_log包含与之前相同的两个警告。 GerritCodeReview进程侦听端口8080,我可以通过Web浏览器访问。现在,生活很美好,但我想知道当我必须重新启动Gerrit时会发生什么。

EDIT2 :是的,正如我所担心的那样,在gerrit.sh restart之后,我不仅会收到FAILED,而且还没有收听网络端口8080或SSH端口29418上的内容。

EDIT3 :总之,对我而言,我似乎可以在一个全新的操作系统上成功启动Gerrit,但是一旦我重新启动它,就会让它等待一个从未发生过的事件,或写入日志之前崩溃。

2 个答案:

答案 0 :(得分:0)

问题可能是缺乏熵。 Gerrit从/ dev / random读取,在无头服务器上,在Gerrit有时间启动之前,熵可能会耗尽。

修复可能是安装haveged包。 因为您使用的是Fedora,所需的命令是:

yum install haveged
chkconfig haveged on
service haveged start

这样做之后,Gerrit应该相对较快地开始。

注意:我已找到此解决方案here

答案 1 :(得分:0)

我只是遇到了同样的问题,并且在您的日志中,此修复的提示就在这里:

[main] WARN  com.google.gerrit.server.config.GitwebCgiConfig : gitweb not installed (no /usr/lib/cgi-bin/gitweb.cgi found)

您尚未安装gitweb,并且已在系统中对其进行配置。从gerrit.config中删除gitweb配置:

[gitweb]
    type = gitweb
    cgi = /usr/lib/cgi-bin/gitweb.cgi

或确保已正确安装。