Sonar-Scanner执行扫描时报错

系统管理员 2021-12-14 05:13 1382阅读 0赞

转载自:https://blog.csdn.net/qq_33912215/article/details/88711526

问题:

用Sonar-Scanner在远端执行扫描时,遇到如下一个报错:

  1. ERROR: Error during SonarQube Scanner execution
  2. ERROR: Failed to upload report - An error has occurred. Please contact your administrator

上传扫描结果失败。

定位日志:

查看sonar安装目录下的logs中的web.log,里面有如下报错信息

  1. ERROR web[AWmZRNUwXbi+lsl9AAH0][o.s.s.w.WebServiceEngine] Fail to process request http://10.0.27.13:9000/api/ce/submit?projectKey=proKey&projectName=proName
  2. java.lang.IllegalStateException: Fail to insert data of CE task AWmd77ZUi0dEtE_V6reH
  3. at org.sonar.db.ce.CeTaskInputDao.insert(CeTaskInputDao.java:56)
  4. at org.sonar.server.ce.queue.ReportSubmitter.submitReport(ReportSubmitter.java:189)
  5. at org.sonar.server.ce.queue.ReportSubmitter.submit(ReportSubmitter.java:89)
  6. at org.sonar.server.ce.ws.SubmitAction.handle(SubmitAction.java:121)
  7. at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:110)
  8. at org.sonar.server.ws.WebServiceFilter.doFilter(WebServiceFilter.java:88)
  9. at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:126)
  10. at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:95)
  11. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  12. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  13. at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:87)
  14. at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:71)
  15. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  16. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  17. at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
  18. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  19. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  20. at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:76)
  21. at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:48)
  22. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  23. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  24. at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:61)
  25. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  26. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  27. at org.sonar.server.platform.web.requestid.RequestIdFilter.doFilter(RequestIdFilter.java:63)
  28. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  29. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  30. at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
  31. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  32. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  33. at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
  34. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
  35. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
  36. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
  37. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
  38. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
  39. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
  40. at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
  41. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
  42. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
  43. at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
  44. at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
  45. at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
  46. at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
  47. at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  48. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  49. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  50. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  51. at java.lang.Thread.run(Thread.java:748)
  52. Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (18307204 > 16777216). You can change this value on the server by setting the max_allowed_packet' variable.
  53. at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3681)
  54. at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2512)
  55. at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
  56. at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
  57. at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
  58. at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)
  59. at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)
  60. at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)
  61. at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)
  62. at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136)
  63. at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136)
  64. at org.sonar.db.ce.CeTaskInputDao.insert(CeTaskInputDao.java:53)
  65. ... 48 common frames omitted

问题出在这里

  1. com.mysql.jdbc.PacketTooBigException: Packet for query is too large (18307204 > 16777216). You can change this value on the server by setting the max_allowed_packet' variable.

是说向MySQL数据库中写数据的时候超过了单次最大数据量,可通过修改MySQL中max_allowed_packet参数进行解决。

解决步骤:
1、查看MySQL数据库的配置文件mysql.cnf,里面有配置(或命令show VARIABLES like ‘%max_allowed_packet%’;)
max_allowed_packet = 16M
2、修改成

max_allowed_packet = 64M
3、然后重启MySQL容器,通过命令查看如下

show VARIABLES like ‘%max_allowed_packet%’;
å¨è¿éæå¥å¾çæè¿°

4、然后再重启sonar容器,一定要重启
5、重新执行sonar-scanner,可成功上传sonar report
6、等待sonar-server执行完分析后,即可在sonar web中查看报告。

发表评论

表情:
评论列表 (有 0 条评论,1382人围观)

还没有评论,来说两句吧...

相关阅读