【问题标题】:Snapshot failure with Sonar in JenkinsJenkins 中 Sonar 的快照失败
【发布时间】:2014-07-18 16:27:53
【问题描述】:

这是我第二次在使用 Sonar 3.7.4 版时遇到此问题。上一次我刚刚在一个新的 MS SQL 数据库上创建了一个新的声纳,因为之前它是在一个 H2 数据库上。所以问题暂时解决了,但今天又出现了,我得到了 Jenkins 工作的以下输出:

INFO:
------------------------------------------------------------------------ INFO: EXECUTION FAILURE INFO:
------------------------------------------------------------------------ Total time: 17.312s Final Memory: 42M/101M INFO:
------------------------------------------------------------------------ ERROR: Error during Sonar runner execution ERROR: Unable to execute


Sonar ERROR: Caused by: Expected single result, but got :
[Snapshot[resourceId=774,buildDate=2014-07-16
10:39:21.243,createdAt=2014-07-16
10:39:20.0,version=1.0-SNAPSHOT,last=true,status=P,purgeStatus=1,scope=PRJ,path=946316.,depth=1,qualifier=BRC,rootId=946316,parentId=946316,rootProjectId=773,period1Mode=previous_analysis,period2Mode=days,period3Mode=previous_version,period4Mode=<null>,period5Mode=<null>,period1Param=2014-07-16,period2Param=30,period3Param=<null>,period4Param=<null>,period5Param=<null>,period1Date=2014-07-16 10:35:47.0,period2Date=2014-06-16
10:39:20.0,period3Date=<null>,period4Date=<null>,period5Date=<null>,id=946317],Snapshot[resourceId=774,buildDate=2014-07-16
10:39:29.867,createdAt=2014-07-16
10:39:29.0,version=1.0-SNAPSHOT,last=true,status=P,purgeStatus=<null>,scope=PRJ,path=946353.,depth=1,qualifier=BRC,rootId=946353,parentId=946353,rootProjectId=970,period1Mode=previous_analysis,period2Mode=days,period3Mode=previous_version,period4Mode=<null>,period5Mode=<null>,period1Param=2014-07-16,period2Param=30,period3Param=<null>,period4Param=<null>,period5Param=<null>,period1Date=2014-07-16 10:35:47.0,period2Date=2014-06-16
10:39:29.0,period3Date=<null>,period4Date=<null>,period5Date=<null>,id=946357]]

所以快照出了点问题。我之前做了一些研究,但没有找到好的解决方案。这是 Sonar 中的一个错误,是否可以在更新的版本中解决?

解决方案

在我的声纳项目中也有“组件”(可以在 GUI 中找到)。这些组件也有快照。上面的声纳输出说它正在寻找resource_id 774。所以我选择了这个id的快照,我看到有两个is_last = 1的快照。

SELECT * FROM snapshots where project_id=774
Order by 2 desc

所以我更新了最后一个之前的那个,所以它的 is_last = 0。

UPDATE snapshots SET islast = 0 WHERE id=yoursnapshotid

旁注

这解决了问题。当我还尝试删除数据库中的一些快照(删除记录)时,我遇到了另一个问题,告诉我

“无法找到 id x 的 org.sonar.api.database.model.Snapshot”

我通过删除带有 snapshot_id x 的事件表中的事件解决了这个问题。

delete from events where snapshot_id=946316

【问题讨论】:

    标签: jenkins sonarqube


    【解决方案1】:

    我可以看到有多个快照。请转到设置并检查快照。您将同时看到多个快照。您需要删除其中之一。这是声纳缺陷。如果不是这种情况,或者您需要更多帮助,可以在这里问我。

    【讨论】:

    • 您好,感谢您的回答。我认为我没有找到任何重复项,但我在 10:35 删除了快照,但现在它仍然抱怨 10:39 的快照(这是最后一个,我无法从 GUI 中删除此快照)。
    • 我知道,把这个的快照发给我。几个月前我解决了这个问题。我会告诉你方法。你可能需要数据库中的一些东西。
    • 如何将快照发送给您?你能告诉我在哪里可以找到你需要的东西吗?
    • 在您删除 10:35 定时的快照之前有多少最后快照。如果您查询数据库,您肯定会有所了解。类似这样的“从 [dbo].snapshots 中选择 *,其中 project_id='yourprojectid' 和 islast='1'”。您的项目 ID 将是 970 或 773。只需检查一下即可。
    • 我的项目 id 确实是 773 。这是查询的输出。 946316 2014-07-16 10:39:20.993 773 NULL P 1 PRJ TRK NULL meh 0 773 previous_analysis 2014-07-16 2014-07-16 10:35:47.000 天 30 2014-06-16 10:39:20.000 previous_version NULL NULL NULL NULL NULL NULL NULL NULL 2014-07-16 10:39:21.180 NULL 我只在 10:35 删除了 1 个快照
    猜你喜欢
    • 2016-02-21
    • 2014-10-23
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多