【问题标题】:Quality profile weirdness (active/inactive rules) after sonarqube upgrade 6.3.1sonarqube 升级 6.3.1 后的质量配置文件怪异(活动/非活动规则)
【发布时间】:2021-02-18 01:18:22
【问题描述】:

我已将 sonarqube 服务器从 6.2 升级到 6.3.1,从那时起,我发现有关质量配置文件的奇怪行为(以前可能发生过,现在才看到)。

当我点击质量配置文件时 SonarWay (Java) 我看到了

看来,所有规则都是无效的。

当我点击激活更多时,我看到以下内容

看起来,有规则处于活动状态(我假设由于“停用”选项”)。

但是当在左侧栏中切换到质量配置文件下的“活动”时会导致这种情况

很明显,没有有效的规则。

然后显示的第二张图片是什么,“停用”是什么意思,虽然它是不活动的?

突然间所有规则似乎都失效了,怎么会发生这种情况?

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    此特定行为是 Elastic Search 索引损坏(不再与 SonarQube 数据库同步)的常见症状。

    解决方案

    重建 SonarQube ElasticSearch 索引:

    • 停止您的 SonarQube 服务器
    • 删除 ElasticSearch 索引@sonar_install_dir/data/es
    • 启动您的 SonarQube 服务器

    (提醒:ElasticSearch 是 SonarQube 用于索引问题、规则等的搜索引擎,以便它可以快速访问这些数据而无需一直查询数据库,请参阅SonarQube Architecture )

    根本原因

    为什么会这样?一个常见的情况是升级和/或更改数据库后未正确重建 ElasticSearch 索引。这是一个典型的场景:您首先在嵌入式 H2 数据库上启动 SonarQube,对其进行一些试验,然后将其插入一个成熟的数据库。如果 ElasticSearch 索引在两者之间没有被划伤/重建,那么索引就会损坏,因为它曾经同步的数据库/数据集突然发生了变化。

    仅供参考,计划进行一项改进以更优雅地处理此问题:SONAR-5681

    注意:独立于上述解决方案,不要将 ElasticSearch 索引重建作为轻量级操作,应该定期执行。 SonarQube 会自行管理其 ElasticSearch 索引,因此必须首先调查任何问题。

    【讨论】:

    • 您的场景正是我所做的。我想我是因为更新页面上的一句话“安装与您的 SonarQube 版本兼容的插件。[...]不推荐从旧服务器到新服务器的插件;不兼容的插件可能会导致启动错误。” - 所以我的假设是启动新服务器并安装插件,此时它仍然指向 H2。
    • 在 sonarqube 6.7 中不起作用,我什至解压缩了一个新副本并删除了旧安装。有什么想法吗?
    猜你喜欢
    • 2017-01-08
    • 2018-11-11
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多