Sonarqube v.4 TFS 任务“Publish Quality Gate Result”抛出错误“Could not fetch task for ID”

Posted

技术标签:

【中文标题】Sonarqube v.4 TFS 任务“Publish Quality Gate Result”抛出错误“Could not fetch task for ID”【英文标题】:Sonarqube v.4 TFS task “Publish Quality Gate Result” throws error “Could not fetch task for ID” 【发布时间】:2018-12-18 16:43:19 【问题描述】:

我们最近升级到 SonarQube 社区版 7.1 版(内部版本 11001)。我们还使用 TFS SonarQube 扩展版本 4.3.1。 “发布质量门结果”构建步骤失败并显示以下消息:

[SQ] API GET '/api/ce/task' failed, status code was: 404
[SQ] Could not fetch task for ID 'AWRg8urbC5nyQrURbDKL'

这只发生在 linux 构建代理上。它不会发生在 Windows 构建代理上。同样有趣的是,“运行代码分析”步骤的输出似乎表明了不同的任务 ID:

=========== Run Code Analysis Output ===========
More about the report processing at http://sonarqube:9000/api/ce/task?id=AWSFWzxYmaH45QFNcZ_C

=========== Publish Quality Gate Result Output ===========
[SQ] Could not fetch task for ID 'AWRg8urbC5nyQrURbDKL'

代码分析步骤中的 URL 有效,并返回一个 json 响应,其中包含有关任务的所有数据。如果我将 URL 中的 ID 替换为“发布”步骤中的 ID,我会收到错误 json 响应,并显示消息“No activity found for task”。

如何解决此问题,以免构建步骤失败?

更新 - 已修复

在构建中设置system.debug=true 后,我注意到发布质量门结果任务正在处理两个report-task.txt 文件:/agent/_work/2/.sonarqube/out/.sonar/report-task.txt/agent/_work/2/s/.scannerwork/report-task.txt。该任务读取这些文件的内容以获取用于 SQ 分析的 URL 和任务 ID。第二个是旧版本遗留下来的,包含无效的任务 ID。删除该文件解决了这个问题。

【问题讨论】:

您是否为 SonarQube 或 TFS 服务器设置了代理?您是否尝试过部署新的 Linux 构建代理并再次尝试?任何问题请参考this similar thread(Olivier 的回复)和此博客:[VSTS - BITNAMI SONARQUBE 集成与 HTTPS (SSL) 支持](bimar-arkas.blogspot.com/2018/04/…) 进行故障排除。 看来你已经解决了这个问题,你可以将你的解决方案发布为答案和accept it,这可能对阅读此主题的其他社区成员有所帮助。 【参考方案1】:

如果构建目录包含先前构建遗留的report-task.txt 文件,则会发生此错误。通过在构建配置中将Clean 选项设置为true,确保构建目录中没有report-task.txt 文件。

【讨论】:

您在哪里设置清洁选项?就像您提到的“构建配置”在哪里?我只找到了 sonar.dbcleaner.cleanDirectory 并且在我这边设置为 true。仍然得到同样的错误:/ 在 TFS 中,clean 选项显示在构建配置的“Get Sources”步骤中。您必须转到构建的编辑视图,单击“任务”,单击“获取源”,您将在那里看到干净的选项。看到这个截图:imgur.com/a/2PwTGtw 谢谢,删除旧的 report-task.txt 解决了问题。

以上是关于Sonarqube v.4 TFS 任务“Publish Quality Gate Result”抛出错误“Could not fetch task for ID”的主要内容,如果未能解决你的问题,请参考以下文章

Sonarqube TFS 任务返回错误 (401) 在一个项目上未经授权,但在其他项目上未授权

##[错误]错误:超出 GC 开销限制 - TFS 构建中的 SonarQube

Sonarqube v.4.3.0 VSTS 任务“发布分析结果”抛出错误“无法获取指标”(404)

如何解决运行代码分析任务TFS中文件无法被索引两次错误?

激活FXCop规则时,SonarQube扫描仪在内部部署TFS上失败

SonarQube 5.6 中的 C# 单元测试结果