当前位置: 首页 > 知识库问答 >
问题:

声纳分析挂在执行装饰器上

仇经武
2023-03-14

我在Ant中使用Sonar,导入Cobertura和单元测试结果,并通过设置“Sonar+FindBugs”运行代码质量分析。我以前已经能够用声纳分析我的(大型)项目。我不知道,也许我做了一些改变,但现在分析不再完成了。声纳已经成功导入了Cobertura报告,然后它试图执行装饰器,但它只是挂起(几个小时):

P.PhasestimeProfiler-执行装饰器...

我已经在Windows7和RHEL6机器上测试了这一点。我已经将ANT java堆增加到2048M。对于较小的设置,我通常会在某个时候得到一个java堆Exception-Exception。进程当前正在运行,进程使用2266M内存

有什么想法吗?:)

[sonar:sonar] 10:25:24.348 DEBUG raphMetricAggregator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.350 DEBUG emDashBoardDecorator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.505 DEBUG raphMetricAggregator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.505 DEBUG emDashBoardDecorator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.986 DEBUG raphMetricAggregator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.986 DEBUG emDashBoardDecorator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.994 DEBUG raphMetricAggregator - Checking for resource type: CLA
[sonar:sonar] 10:25:24.995 DEBUG emDashBoardDecorator - Checking for resource type: CLA
[sonar:sonar] 10:25:25.206 DEBUG raphMetricAggregator - Checking for resource type: CLA
[sonar:sonar] 10:25:25.206 DEBUG emDashBoardDecorator - Checking for resource type: CLA
[sonar:sonar] 10:25:25.214 DEBUG raphMetricAggregator - Checking for resource type: CLA
[sonar:sonar] 10:25:25.214 DEBUG emDashBoardDecorator - Checking for resource type: CLA
[sonar:sonar] 10:00:31.855 DEBUG    org.hibernate.SQL - select snapshot0_.id as
id7_, snapshot0_.build_date as build2_7_, snapshot0_.created_at as created3_7_,
snapshot0_.depth as depth7_, snapshot0_.islast as islast7_, snapshot0_.parent_sn
apshot_id as parent6_7_, snapshot0_.path as path7_, snapshot0_.period1_date as p
eriod8_7_, snapshot0_.period1_mode as period9_7_, snapshot0_.period1_param as pe
riod10_7_, snapshot0_.period2_date as period11_7_, snapshot0_.period2_mode as pe
riod12_7_, snapshot0_.period2_param as period13_7_, snapshot0_.period3_date as p
eriod14_7_, snapshot0_.period3_mode as period15_7_, snapshot0_.period3_param as
period16_7_, snapshot0_.period4_date as period17_7_, snapshot0_.period4_mode as
period18_7_, snapshot0_.period4_param as period19_7_, snapshot0_.period5_date as
 period20_7_, snapshot0_.period5_mode as period21_7_, snapshot0_.period5_param a
s period22_7_, snapshot0_.purge_status as purge23_7_, snapshot0_.qualifier as qu
alifier7_, snapshot0_.project_id as project25_7_, snapshot0_.root_snapshot_id as
 root26_7_, snapshot0_.root_project_id as root27_7_, snapshot0_.scope as scope7_
, snapshot0_.status as status7_, snapshot0_.version as version7_ from snapshots
snapshot0_ where snapshot0_.islast=? and snapshot0_.project_id=(select resourcem
o1_.id from projects resourcemo1_ where resourcemo1_.kee=?)
[sonar:sonar] 10:00:31.899 DEBUG    org.hibernate.SQL - select snapshotso0_.id a
s id13_, snapshotso0_.data as data13_, snapshotso0_.snapshot_id as snapshot3_13_
 from snapshot_sources snapshotso0_ where snapshotso0_.snapshot_id=?
[sonar:sonar] 11:16:40.149 DEBUG b.b.JdbcDriverHolder - To prevent a memory leak
, the JDBC Driver [com.mysql.jdbc.Driver] has been forcibly deregistered
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2746)
    at java.util.ArrayList.ensureCapacity(ArrayList.java:187)
    at java.util.ArrayList.add(ArrayList.java:378)
    at     org.sonar.plugins.core.timemachine.ViolationTrackingDecorator.mapViolations(ViolationTrackingDecorator.java:131)
at org.sonar.plugins.core.timemachine.ViolationTrackingDecorator.decorate(ViolationTrackingDecorator.java:70)
at org.sonar.batch.phases.DecoratorsExecutor.executeDecorator(DecoratorsExecutor.java:79)
at org.sonar.batch.phases.DecoratorsExecutor.decorateResource(DecoratorsExecutor.java:70)
at org.sonar.batch.phases.DecoratorsExecutor.decorateResource(DecoratorsExecutor.java:63)
at org.sonar.batch.phases.DecoratorsExecutor.decorateResource(DecoratorsExecutor.java:63)

如果我将Ant增加到使用2048M,则不会出现上面的java堆空间问题,但是Decorator会挂起,如第一个错误输出所示。

共有1个答案

谢涵亮
2023-03-14

我很抱歉地报告,如果不从MySQL数据库中删除整个项目,我就无法解决这个问题。我注意到它开始悬挂后我做了两个改变。1)我似乎已经将项目密钥更改为其他内容,2)我已经将质量配置文件从默认改为“sonar+findbugs”。

声纳在4次运行(即4天)后停止工作,所以我将从现在开始看看这是否有效,而不改变我的初始设置。今天早上的第一次跑步很顺利。

 类似资料:
  • 问题内容: 输出: 我大致了解装饰器,以及在大多数示例中它如何与装饰器一起使用。 在此示例中,有2个。从输出看,似乎先执行,然后执行。 这是否意味着对于装饰功能,它将首先运行该功能,然后移至其他装饰器的顶部?像先那么,而不是相反。 所以这意味着它与大多数编程语言中的自顶向下方法的规范不同吗?仅用于这种装饰器吗?还是我错了? 问题答案: 装饰器 包装 正在装饰的功能。这样就修饰了装饰器的结果,从而修

  • 我有一个多模块maven项目,它既有模块内单元测试,也有端到端服务测试(不完全是集成测试,因为它们实际上没有与任何东西集成),我们在其中模拟被测试的特定服务的边界。后一组测试(使用mockmvc在部署之前测试所有层)生成jacoco。exec(或jacoco-it.exec,具体取决于我尝试的maven配置),它清楚地表明测试有助于代码覆盖率。事实上,绝大多数覆盖范围都在这一层(每个jacoco大

  • 我想用声纳对一个c代码进行静态分析。我已经安装了声纳和配置我的项目(它出现在localhost声纳页面,但我没有看到任何代码违反各自的代码)。我安装了C社区插件。 我的声纳项目。属性如下所示: 从cmd运行sonar runner时,我没有收到任何错误。 如果我手动运行cppcheck。exe工具在我的项目中我可以找到违规行为。为什么这些违规行为不出现在sonar的页面上?还有什么我应该配置的吗,

  • 我正试图从声纳生成定制的分析报告。我正在使用sonar-ws-client。我的代码是: 我能够获得大部分值,但是总是返回。有没有办法得到7天、15天和30天的变化值?

  • 问题内容: 举个例子: 我遇到的问题是,甚至在我调用要装饰的函数之前就调用了。 开始输出: 在这一点上,我什至没有调用过一个装饰过的函数。 我刚刚开始使用装饰器,所以也许我缺少了一些东西。 问题答案: 我相信python装饰器只是语法糖。 和…一样 如您所见,即使没有调用 bar 也将调用 foo 。这就是为什么您看到装饰器函数的输出的原因。对于您将装饰器应用到的每个函数,您的输出应只包含一行。

  • 我正在Jenkins进行一个用sonarqube分析代码的项目。workspace下的项目结构为:/var/lib/jenkins/workspace/myproject-trunk-sonar/myproject/pom.xml,Module1,Module2等 如果pom.xml和模块所在的/var/lib/jenkins/workspace/myproject-trunk-sonar/myp