我已将 sonarqube 服务器从 6.2 升级到 6.3.1,从那时起,我看到了有关质量配置文件的奇怪行为(它可能以前发生过,现在才看到)。
当我单击质量配置文件SonarWay (Java) 时,我看到
看来所有规则都无效了。
当我单击“激活更多”时,我看到以下内容
所以看起来,有一些规则处于活动状态(我认为是由于“停用”选项”)。
但是,当在质量配置文件下将左栏切换为“活动”时,会导致此结果
很明显,没有任何规则是有效的。
第二张图片显示的是什么,“停用”是什么意思,尽管它处于非活动状态?
怎么会突然出现所有规则都失效了的情况?
这种特定行为是 Elastic Search 索引损坏(不再与 SonarQube 数据库同步)的常见症状。
重建 SonarQube ElasticSearch 索引:
(提醒:ElasticSearch是SonarQube用来索引问题、规则等的搜索引擎,以便它可以快速访问这些数据,而不必一直查询数据库,请参阅SonarQube架构)
为什么会这样?常见情况是升级和/或更改数据库后 ElasticSearch 索引未正确重建。这是一个典型的场景:您首先在嵌入式 H2 数据库上启动 SonarQube,对其进行一些实验,然后将其插入成熟的数据库。如果 ElasticSearch 索引在其间没有被刮擦/重建,那么索引就会被损坏,因为它曾经与之同步的数据库/数据集突然发生了变化。
仅供参考,有一项改进计划可以更优雅地处理此问题:SONAR-5681。
注意:独立于上述解决方案,不要将 ElasticSearch 索引重建视为应定期执行的轻量级操作。SonarQube 自行管理其 ElasticSearch 索引,因此必须首先调查任何问题。
| 归档时间: |
|
| 查看次数: |
1093 次 |
| 最近记录: |