Sonarqube 6.7计算引擎错误

时间:2017-11-22 16:43:02

标签: java postgresql sonarqube

有人对此有任何线索吗?

“目录尚未设置” - 不知道这意味着什么,其他项目工作正常,这个看起来相当大,看着13,500个java文件,另外2500个其他文件。对构建服务器的分析很好,但是Web服务器上的CE在这个项目中遇到了问题。

较小的项目没有问题。

此外,任何人都知道如何在服务器上重新运行此任务而不再需要整整一个小时的声纳转轮?

2017.11.22 09:43:03 INFO  ce[][o.s.ce.app.CeServer] Compute Engine is operational
2017.11.22 10:17:07 INFO  ce[AV_kFoAKPGI1NQcqJopo][o.s.c.t.CeWorkerImpl] Execute task | project=large_java_project | type=REPORT | id=AV_kFoAKPGI1NQcqJopo | submitter=gbizeau
2017.11.22 10:17:07 ERROR ce[AV_kFoAKPGI1NQcqJopo][o.s.s.c.t.s.ComputationStepExecutor] Execution of listener failed
java.lang.IllegalStateException: Directory has not been set yet
        at org.sonar.server.computation.task.projectanalysis.batch.BatchReportDirectoryHolderImpl.getDirectory(BatchReportDirectoryHolderImpl.java:37)
        at org.sonar.server.computation.task.projectanalysis.batch.BatchReportReaderImpl.ensureInitialized(BatchReportReaderImpl.java:53)
        at org.sonar.server.computation.task.projectanalysis.batch.BatchReportReaderImpl.readContextProperties(BatchReportReaderImpl.java:222)
        at org.sonar.server.computation.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor.createProjectAnalysis(PostProjectAnalysisTasksExecutor.java:123)
        at org.sonar.server.computation.task.projectanalysis.api.posttask.PostProjectAnalysisTasksExecutor.finished(PostProjectAnalysisTasksExecutor.java:103)
        at org.sonar.server.computation.task.step.ComputationStepExecutor.executeListener(ComputationStepExecutor.java:71)
        at org.sonar.server.computation.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:56)
        at org.sonar.server.computation.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:73)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.executeTask(CeWorkerImpl.java:134)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:97)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.withCustomizedThreadName(CeWorkerImpl.java:81)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:73)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:43)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
2017.11.22 10:17:07 ERROR ce[AV_kFoAKPGI1NQcqJopo][o.s.c.t.CeWorkerImpl] Failed to execute task AV_kFoAKPGI1NQcqJopo

其他错误......

java.lang.IllegalStateException: Fail to select data of CE task AV_kFoAKPGI1NQcqJopo
        at org.sonar.db.ce.CeTaskInputDao.selectData(CeTaskInputDao.java:74)
        at org.sonar.server.computation.task.projectanalysis.step.ExtractReportStep.execute(ExtractReportStep.java:59)
        at org.sonar.server.computation.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:64)
        at org.sonar.server.computation.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:52)
        at org.sonar.server.computation.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:73)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.executeTask(CeWorkerImpl.java:134)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:97)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.withCustomizedThreadName(CeWorkerImpl.java:81)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:73)
        at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:43)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.postgresql.util.PSQLException: ERROR: invalid memory alloc request size 1315662807
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2476)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2189)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)
        at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
        at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
        at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
        at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
        at org.sonar.db.ce.CeTaskInputDao.selectData(CeTaskInputDao.java:67)
        ... 17 common frames omitted

更新:所以我迄今为止无法“调整”postgresql以便能够处理这些更大的尺寸。我们的项目是3GB未压缩。我发现2GB的静态代码不需要在我们的构建文件夹(rpms等)中并删除它们,SonarQube现在正在运行。虽然这不是解决问题的方法,但我希望其他人可以使用此信息来解决同样的问题。

1 个答案:

答案 0 :(得分:1)

我担心您报告的堆栈跟踪会隐藏另一个错误,这将是真正的问题。

在构建参数以在计算引擎中调用公共PostTask API时发生报告的错误。您可以查看此代码,就像在finally块中执行一样。我已经开了一张票来解决这个隐藏问题SONAR-10115

但是,错误确实间接确认提取报告时出现问题。我们只是"不知道究竟是哪一个。我们可以假设它与报告的大小有关。

报告的ZIP从数据库中提取并流式提取到磁盘。

以下是一些可能出错的想法:

  • 您的数据库无法将整个文件(超时或其他)流式传输到服务器
  • 解压到磁盘失败,因为您的可用空间不足(取决于数据库供应商和配置,网络......)
  • 或达到文件和/或目录数量的限制(取决于操作系统)
  • 流媒体未按预期工作且已提出OOM