6

我知道这类似于sonarqube 5.2 后台任务有时会失败而没有日志- 但是我不能评论(由于缺乏声誉点)来添加更多信息,所以尝试添加这篇文章作为答案,但它被版主删除了...

SonarQube 5.2我在昨天升级后遇到了问题,现在是 5.3。我尝试在服务器上将日志记录提高到 TRACE,并在项目本身上启用 sonar.verbose=true。

但是,maven 构建的输出中没有额外的信息 - 只是正常的:

分析成功,您可以在构建日志中浏览 xxx。

我确实/api/ce/submit?projectKey=xxxx&projectName=yyyy | time=757ms在服务器日志文件中看到了一个 POST - 但没有其他内容。

data\ce\reports我还看到一个名称与构建日志中的 id 匹配的zip 文件(例如:AVI19fDPpe3MLWoccJn9.zip)

但是 - 我在后台任务屏幕上遇到间歇性故障 - 在后台任务屏幕中没有日志链接,也没有在data\ce\logs\reports目录中创建日志。

我求助于从头开始为 5.3 重新构建 sonarqube 数据库(因为我们没有任何历史记录) - 错误仍在发生。

我在用:

  • 全新sonarqube 5.3安装的 Oracle DB
  • 插件:
    • 声纳-java-plugin-3.9
    • 声纳-ldap-plugin-1.5.1
    • sonar-scm-perforce-plugin-1.3(虽然目前有sonar.scm.disabled=true,因为我们在以前的版本中遇到了问题)
    • sonar-csharp-plugin-4.3(与此 java 分析无关)
    • sonar-scm-git-plugin-1.1(与此分析无关)
    • sonar-scm-svn-plugin-1.2(与此分析无关)
  • 我正在使用sonar-jacoco-listeners v 3.2(也尝试过 2.9.1)构建一个 Maven 项目
4

1 回答 1

11

你正面临一个非常奇怪的问题。

把它们加起来:

  • 时不时
  • 处理后台任务时没有任何登录 sonar.log 也没有data/ce/logs目录中的任务日志
  • 任务失败(在 SQ 的 UI 中可见)
  • 它运行了很短的时间
  • 报告 zip 文件仍然存在于数据目录中

我们唯一一次遇到这种情况,结果是两个 SonarQube 实例在同一个数据库上运行,这是发生了什么:

  • SQ A(您知道和监控的那个)接收报告,将 zip 文件保存到其数据目录并在数据库中添加一个条目(后台任务)
  • SQ A 和 SQ B 都定期轮询数据库以获取待处理的项目。有时,SQ B 将是第一个从数据库中选择条目并开始处理它的人。由于报告不在其数据目录中,因此处理很快就会失败,并且该条目在数据库中被标记为失败
  • SQ A 从不尝试处理该条目,因为从它的角度来看,它要么是 PROCESSING(当 SQ B 正在处理它时),要么是 FAILED(当 SQ B 完成它时)。只能处理 PENDING 项。因此,SQ A 的 sonar.log 中不会出现任何日志,也不会创建任务日志。尽管如此,在 UI 中,后台任务仍显示为失败,因为 UI 显示来自 DB 的信息。

SQ A 没有完成处理(即 DB 中条目的状态更改)的一个很好的提示是,报告 zip 文件仍然存在于数据目录中。条目的状态更改为 FAIL 或 SUCCESS 与 zip 文件的删除紧密相关。

这只是一个提示,因为删除也可能失败,但在这种情况下,日志中会出现错误。

于 2016-01-15T14:52:27.437 回答