我已经将sonarqube服务器从6.2升级到6.3.1,从那以后我看到了一个关于质量配置文件的奇怪行为(它可能以前发生过,现在才发现它。)
当我点击质量配置文件 SonarWay (Java)时,我看到了
所以似乎所有规则都是无效的。
当我点击激活更多时,我会看到以下内容
所以它看起来有规则是活跃的(我假设是由于"停用"选项")。
但是当在左侧栏中切换到"活动"在质量配置文件下导致此
如此清楚,没有规则是活跃的。
然后显示的第二张图像是什么,"取消激活"意思是,虽然它不活跃?
突然之间所有规则似乎都被停用了怎么会发生这种情况?
答案 0 :(得分:3)
此特定行为是损坏的弹性搜索索引的常见症状(不再与SonarQube数据库同步)。
重建SonarQube ElasticSearch索引:
(提醒: ElasticSearch 是SonarQube用来索引问题,规则等的搜索引擎,以便它可以快速访问这些数据,而无需一直查询数据库,请参阅{{3 }})
为什么会这样?一个常见的情况是在升级和/或更改数据库后未正确重建ElasticSearch索引。这是一个典型的场景:您首先在嵌入式H2数据库上启动SonarQube,对其进行一些实验,然后将其插入到完整的数据库中。如果ElasticSearch索引没有被中间划分/重建,那么索引就会被破坏,因为它曾经与之同步的数据库/数据集突然发生了变化。
仅供参考,计划更优雅地处理此问题:SonarQube Architecture。
注意:独立于上述解决方案,不要将ElasticSearch索引重建作为应定期执行的轻量级操作。 SonarQube会自行管理其ElasticSearch索引,因此必须首先调查任何问题。