SonarQube退出并显示143错误代码

13

我试图在具有6GB RAM的Centos 6虚拟机上设置SonarQube。该过程总是以143退出。

经分析,我发现JVM收到了SIGTERM信号,从而退出。没有核心转储,dmesg也没什么用。我还尝试调整内存选项,但无济于事。

如果有人能帮助我调试此问题,那将非常有用。至少,我会知道为什么软件被终止。

jvm 1    | 2018.03.06 15:32:59 INFO  app[][o.e.p.PluginsService] no modules loaded
jvm 1    | 2018.03.06 15:32:59 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
jvm 1    | 2018.03.06 15:33:07 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
jvm 1    | 2018.03.06 15:33:07 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/home/sonar/sonar/sonarqube-7.0]: /opt/jdk1.8.0_161/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/home/sonar/sonar/sonarqube-7.0/temp -Xrs -Xmx4g -Xms4g -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:./lib/server/*:/home/sonar/sonar/sonarqube-7.0/lib/jdbc/mysql/mysql-connector-java-5.1.42.jar org.sonar.server.app.WebServer /home/sonar/sonar/sonarqube-7.0/temp/sq-process3024208901604150849properties
jvm 1    | 2018.03.06 15:33:12 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
jvm 1    | 2018.03.06 15:33:12 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
jvm 1    | 2018.03.06 15:33:12 WARN  app[][o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143
jvm 1    | 2018.03.06 15:33:12 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
wrapper  | <-- Wrapper Stopped

1
请问您能否分享web.log、ce.log和es.log文件? 对于您的问题,我的猜测是:您可能正在使用root账户,这是不可能的。 - Eric Hartmann
您的机器可能没有足够的内存来运行所有进程。您是否检查过 SQ 的 ES 进程未被 OOM Killer 杀死:https://dev59.com/j3RB5IYBdhLWcg3wbGxB - Seb - SonarSource Team
你解决了这个问题吗?我也遇到了同样的问题。我没有任何OOM进程杀手日志条目。 - John Elion
似乎Sonarqube在启动过程中遇到任何错误(例如:数据库不可用)时都会以代码143退出。您只需要检查所有日志文件以获取有关错误的详细信息(在我的情况下:web.log)。 - Amael H.
11个回答

6

我也经历过这个问题,但今天早上我成功解决了它。

对于我来说,问题不是因为Elastic系统配置不良、无效的数据库凭据,也不是被OOM killer杀死了。对我来说,问题在于我们在扩展/插件文件夹中放置了"sonar-cfamily-plugin-5.1.10083.jar",但我们没有使用它的许可证(我们是一个Java店,我怀疑甚至没有人尝试运行它)。在SonarQube 6.6中,我们收到了有关其未获许可的警告,但没有出现任何崩溃。在6.7、6.7.3和7.0中,es崩溃并退出了143(我相信我们仍然收到了警告,但由于它在我们的6.6日志中,我认为它不是一个问题)。

我发现这是因为我尝试进行了“超级清洁”安装(没有插件),而SonarQube 7.0保持正常;重新添加插件后,es崩溃了143。CFamily是我尝试删除的第一个插件(因为我们实际上不使用它),而SonarQube保持正常。

我还没有回到6.7去看看是否删除未经许可的cfamily插件也能解决ES 143退出的问题,但如果您遇到了这个令人发狂的错误,并且没有其他建议适用于您,那么这可能是需要考虑的事情。至少,可以尝试删除所有插件,看看SonarQube是否正确启动;然后逐个添加它们,直到找到引入ES 143退出问题的插件。


4

我正在按照完全相同的教程操作,也遇到了同样的问题。然而,如果我们移除插件,就会失去它的作用。如果不使用插件,我们应该如何进行快速分析呢? - Will
我尝试下载LTS (长期支持版): SonarQube 6.7.x,对我来说可行。 - Dhruv
我试图启动 SonarQube Web 控制台,但总是出现 143 错误。当我移除 backelite-sonar-swift-plugin-0.4.4.jar 后,它就完美地工作了。我使用的是 SonarQube 7.7 版本,因为从 7.9 开始需要 Java 11,而我们的项目使用的是 Java 8。 - Saurabh
您的问题已通过删除插件得到解决,因为该插件使用的是旧版SonarQube,需要添加插件,而在新版本中,大多数语言插件已捆绑以进行检查。更多信息请参见https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/。 - Abhishek Bansal

3

今天我遇到了这个问题,查看了web.log文件($SONARQUBE_HOME/sonarqube/logs),发现以下内容被记录在日志中:

2019.02.28 15:47:38 INFO  web[][o.s.s.p.d.m.c.MssqlCharsetHandler] Verify that database collation is case-sensitive and accent-sensitive
2019.02.28 15:47:38 ERROR web[][o.s.s.p.Platform] Web server startup failed: Database collation must be case-sensitive and accent-sensitive. It is SQL_Latin1_General_CP1_CI_AS but should be SQL_Latin1_General_CP1_CS_AS.

在我修复了字符集排序规则(在设置数据库时漏掉了)后,它就能正常工作了。希望这能帮助其他遇到同样问题的人。


1

我需要更新我的mysql版本。

SonarQube支持MySQL 5.6和5.7。

请检查您现有的版本号。

mysql -u <username> -p
SELECT VERSION()

如果版本不是5.6或5.7,则卸载现有的mysql。
sudo yum -y remove mysql

安装MySQL 5.6

sudo yum localinstall http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm -y
sudo yum install mysql-community-server -y

启动MySQL

sudo service mysqld start

1
我遇到了与eaccmk相同的问题,但我意识到我的问题是我使用的是SonarQube 7.6,而应该使用长期支持版本6.7.6。
切换到6.7.6并将插件放置在那里使代码成功启动,没有出现143错误。

1

对我来说,问题在于Sonar实例无法访问我的数据库。在AWS上,由于移动了实例(AMI、启动新实例等),需要通过RDS安全组允许访问。


1
对我而言,问题在于Sonar实例无法访问我的数据库。在AWS上,由于移动了实例(AMI,启动新实例等),需要通过RDS安全组进行允许。
一旦我在sonar-directory/logs/web.log文件中找到异常,错误就变得很明显:
java.lang.IllegalStateException: 无法连接到数据库。请检查连通性和设置...

1
请检查您的/opt/sonarqube/conf/sonar.propeties文件中以下行:
sonar.jdbc.url=jdbc:postgresql://localhost/your_db_schema

例如,如果您在PG中插入此内容。
CREATE DATABASE db_sonarqube;
…
…
\q

你的行将是这样的:

sonar.jdbc.url=jdbc:postgresql://localhost/db_sonarqube

0

我遇到了同样的问题,结果发现我没有创建数据库。

创建了数据库之后,重新启动SonarQube,问题就解决了。


0

虽为老问题,但答案仍具参考价值。 143错误的原因如下: * 手动将插件(.jar)复制到$SONAR_HOME/extensions/Plugins目录下; * 未经授权的插件; * 不兼容的插件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接