2016-08-12 136 views
0

自升級到Sonarqube 6.0以來,我無法對我的一個項目執行分析。報告超過Sonar服務器的最大上傳大小

該項目對通過行家插件聲納分析,並失敗,出現以下錯誤:

Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7.1:sonar (default-cli) on project rating-parent: Error 500 on http://sonar.example.com/api/ce/submit?projectKey=com.example.rating-parent&projectName=Rating%20System&projectBranch=develop 

檢查的sonar.log服務器(它位於通過AJP一個Apache服務器2.4後面)上顯示此堆棧跟蹤:

2016.08.12 10:50:14 ERROR web[o.s.s.w.WebServiceEngine] Fail to process request http://sonar.example.com/api/ce/submit?projectKey=com.example.rating:rating-parent&projectName=Rating%20System&projectBranch=develop 
java.lang.IllegalStateException: Can't read file part 
    at org.sonar.server.ws.ServletRequest.readPart(ServletRequest.java:93) ~[sonar-server-6.0.jar:na] 
    at org.sonar.server.ws.ServletRequest.readInputStreamParam(ServletRequest.java:76) ~[sonar-server-6.0.jar:na] 
    at org.sonar.api.server.ws.internal.ValidatingRequest.paramAsInputStream(ValidatingRequest.java:74) ~[sonar-plugin-api-6.0.jar:na] 
    at org.sonar.server.ce.ws.SubmitAction.handle(SubmitAction.java:84) ~[sonar-server-6.0.jar:na] 
    at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:109) ~[sonar-server-6.0.jar:na] 
    at org.sonar.server.ws.WebServiceFilter.doFilter(WebServiceFilter.java:74) [sonar-server-6.0.jar:na] 
    at org.sonar.server.platform.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:125) [sonar-server-6.0.jar:na] 
    at org.sonar.server.platform.MasterServletFilter.doFilter(MasterServletFilter.java:94) [sonar-server-6.0.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:56) [sonar-server-6.0.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.sonar.server.platform.RoutesFilter.doFilter(RoutesFilter.java:55) [sonar-server-6.0.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.sonar.server.platform.ProfilingFilter.doFilter(ProfilingFilter.java:84) [sonar-server-6.0.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:191) [logback-access-1.1.3.jar:na] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:868) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_91] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_91] 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.32.jar:8.0.32] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] 
Caused by: java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (3736099) exceeds the configured maximum (2097152) 
    at org.apache.catalina.connector.Request.parseParts(Request.java:2846) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.connector.Request.parseParameters(Request.java:3151) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.connector.Request.getParameter(Request.java:1108) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:380) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.sonar.server.ws.ServletRequest.readParam(ServletRequest.java:71) ~[sonar-server-6.0.jar:na] 
    at org.sonar.api.server.ws.internal.ValidatingRequest.readParamOrDefaultValue(ValidatingRequest.java:134) ~[sonar-plugin-api-6.0.jar:na] 
    at org.sonar.api.server.ws.internal.ValidatingRequest.param(ValidatingRequest.java:86) ~[sonar-plugin-api-6.0.jar:na] 
    at org.sonar.api.server.ws.internal.ValidatingRequest.param(ValidatingRequest.java:68) ~[sonar-plugin-api-6.0.jar:na] 
    at org.sonar.api.server.ws.Request.mandatoryParam(Request.java:63) ~[sonar-plugin-api-6.0.jar:na] 
    at org.sonar.server.ce.ws.SubmitAction.handle(SubmitAction.java:81) ~[sonar-server-6.0.jar:na] 
    ... 30 common frames omitted 
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (3736099) exceeds the configured maximum (2097152) 
    at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:811) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:256) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:280) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    at org.apache.catalina.connector.Request.parseParts(Request.java:2776) ~[tomcat-embed-core-8.0.32.jar:8.0.32] 
    ... 39 common frames omitted 

我從中收集,就是錯誤是由分析報告的大小被提交到服務器Sonarqube(大約3.7 MB)造成的事實,比嵌入式的Tomcat較大服務器的上傳限制約爲2 MB。

目標/聲納/批處理報告中文件的累積大小實際上大約爲3.7 MB,所以我猜測堆棧跟蹤是正確的。

我也嘗試過我們的一個小項目(報告總數約1,300萬),它的工作沒有問題。

無論我是從Jenkins服務器運行此還是從命令行本地調用Maven(3.3.9),都無關緊要。

假設沒有辦法減小報告大小(是3,7 MB例外?),我可以通過增加Tomcat的最大上傳大小來解決這個問題。我知道如何在常規的Tomcat安裝中執行此操作,但我不知道如何爲Sonarqube的嵌入式Tomcat服務器執行此操作。

+1

您可能感興趣的https://groups.google.com/forum/?pli=1 #!topic/sonarqube/OkMXQc-1ah8) –

+0

Thanks @G。安,那正是我的情況!我試圖尋找類似的線程,但找不到任何。猜猜它還沒有被搜索引擎拾起。 –

回答

1

這是使用AJP連接器時,將其固定於6.1的一個問題:這個線程(https://jira.sonarsource.com/browse/SONAR-7977

+0

謝謝,現在我知道是什麼原因造成的。那麼我暫時等待通過http的修復和代理! –

+0

通過HTTP使用代理實際上是唯一的解決方案,因爲它最終決定不再支持AJP:https://jira.sonarsource.com/browse/SONAR-7989 –

相關問題