加载项目存储库时发生 SonarQube 5.1.1 读取超时错误

SonarQube 5.1.1 Read Timed out Error occurs while loading project repositories

在使用sonar runner 分析多模块项目时,我经常遇到“Read Timed Out”错误。我为 Jenkins 配置了 SonarQube 5.1.1。我们的项目是一种 web 项目,我们有几个用于分析的声纳插件,如 web、css、java、findbugs、js、xml 和 jacoco。如果我从浏览器加载给定的 link "http://172.21.145.84:9000/batch/project?key=webportal&preview=false" 它可以工作,但有时加载响应数据需要很长时间。任何人都可以给我关于这次失败的任何建议吗?我在下面分享了声纳日志。

SonarQube Runner 2.4
Java 1.7.0_45 Oracle Corporation (64-bit)
Windows 7 6.1 amd64
INFO: Runner configuration file: C:\sonar-runner-2.4\conf\sonar-runner.properties
INFO: Project configuration file: D:\Jenkins\jobs\Webportal_2.0_Drop1Branch\workspace\DataModel\..\ucfed_webportal_plugin_att\sonar-project.properties
INFO: Default locale: "en_US", source code encoding: "UTF-8"
INFO: Work directory: D:\Jenkins\jobs\Webportal_2.0_Drop1Branch\workspace\DataModel\..\ucfed_webportal_plugin_att\.sonar
INFO: SonarQube Server 5.1.1
17:11:29.762 INFO  - Load global repositories
17:11:30.027 INFO  - Load global repositories (done) | time=281ms
17:11:30.042 INFO  - Server id: 20150707155744
17:11:30.042 INFO  - User cache: C:\Users\Administrator\.sonar\cache
17:11:30.042 INFO  - Install plugins
17:11:30.479 INFO  - Install JDBC driver
17:11:30.495 INFO  - Create JDBC datasource for jdbc:h2:tcp://localhost/sonar
17:11:32.538 INFO  - Initializing Hibernate
17:11:35.409 INFO  - Load project repositories
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 26.832s
Final Memory: 46M/303M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: Unable to request: /batch/project?key=webportal &preview=false
ERROR: Caused by: Read timed out
ERROR: 
ERROR: To see the full stack trace of the errors, re-run SonarQube Runner with the -e switch.
ERROR: Re-run SonarQube Runner using the -X switch to enable full debug logging.
Build step 'Invoke Standalone Sonar Analysis' marked build as failure
Extended Email Publisher is currently disabled in project settings
Finished: FAILURE

您面临我们将在 SonarQube 5.2 中尝试解决的以下限制:SONAR-6604

(我在工单的描述中添加了对您的 post 的引用)

请注意,您使用的是基于嵌入式H2 数据库的默认安装,因此您不能指望有好的性能。我想你一定注意到了页面底部的大红色警告。

如您所见,错误与读取超时有关,这是由于它要读取的项目很大而导致的。在我的例子中,我修改了配置文件的 sonar.jdbc.maxWait 值:/sonarqube-5.1.2/conf/sonar.properties

# The maximum number of milliseconds that the pool will wait (when there
# are no available connections) for a connection to be returned before
# throwing an exception, or <= 0 to wait indefinitely.
sonar.jdbc.maxWait=10000

当我执行此更改时,错误消失了。 祝你好运

由于 SQL 查询结果集很大,我 运行 遇到了同样的问题。 将 sonar.jdbc.maxWait 增加到 300000 就可以了。 帮助很大!非常感谢!

在使用 SonarQube 的漫长 运行 过程中,通过牢记以下几点,我能够通过一些调整解决上述问题。

  • 硬件性能提升。
  • 将系统保持为 运行 仅 SonarQube。
  • 每周重启一次声纳服务器。

会有好的结果。

我在使用 Sonar 8.9.1 时遇到了类似的问题:

Fail to request url: http://.../batch/project.protobuf?key=...: timeout: Read timed out

在我的例子中,问题是一个非常大的 Jacoco xml 覆盖文件。我通过增加 sonar.ws.timeout 参数 as detailed in documentation.

的默认值(60 秒)解决了这个问题