SonarQube通过http请求项目属性的结果为;java.net.SocketTimeoutException:读取超时;
当使用sonar runner分析一个多模块项目时,我反复遇到一个SonarQube通过http请求项目属性的结果为;java.net.SocketTimeoutException:读取超时;,sonarqube,sonar-runner,Sonarqube,Sonar Runner,当使用sonar runner分析一个多模块项目时,我反复遇到一个java.net.SocketTimeoutException:Read timed out异常,该异常在分析过程中的不同时间抛出。该项目共有13个模块,总计约20万个LOC。正在使用SCM和LDAP插件 环境: 声纳qube:4.4 声纳跑步者:2.4 读取超时发生在以下任一情况: 在加载全局属性(例如http://hostname:9000/batch_bootstrap/properties?dryRun=false)
java.net.SocketTimeoutException:Read timed out
异常,该异常在分析过程中的不同时间抛出。该项目共有13个模块,总计约20万个LOC。正在使用SCM和LDAP插件
环境:
- 声纳qube:4.4
- 声纳跑步者:2.4
http://hostname:9000/batch_bootstrap/properties?dryRun=false
)- sonar.host.connectTimeoutMs
- sonar.host.readTimeoutMs
- 我已关闭LDAP身份验证,但问题仍然存在
- 我可以通过web浏览器完成http请求(例如,键入
进入Firefox)很好,请求立即完成,这并不意味着延迟会导致超时http://hostname:9000/batch_bootstrap/properties?dryRun=false
SonarQube Runner 2.4
Java 1.7.0_25 Oracle Corporation (64-bit)
Windows 7 6.1 amd64
INFO: Error stacktraces are turned on.
INFO: Default locale: "en_US", source code encoding: "windows-1252" (analysis is platform dependent)
INFO: SonarQube Server 4.4
09:14:24.854 INFO - Load global settings
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 21.447s
Final Memory: 17M/308M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
at java.security.AccessController.doPrivileged(Native Method)
at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
at org.sonar.runner.api.Runner.execute(Runner.java:100)
at org.sonar.runner.Main.executeTask(Main.java:70)
at org.sonar.runner.Main.execute(Main.java:59)
at org.sonar.runner.Main.main(Main.java:53)
Caused by: java.lang.IllegalStateException: Unable to request: /batch_bootstrap/properties?dryRun=false
at org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:91)
at org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:81)
at org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:77)
at org.sonar.batch.settings.DefaultSettingsReferential.downloadSettings(DefaultSettingsReferential.java:65)
at org.sonar.batch.settings.DefaultSettingsReferential.globalSettings(DefaultSettingsReferential.java:51)
at org.sonar.batch.bootstrap.BatchSettings.downloadSettings(BatchSettings.java:94)
at org.sonar.batch.bootstrap.BatchSettings.init(BatchSettings.java:74)
at org.sonar.batch.bootstrap.BatchSettings.<init>(BatchSettings.java:57)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:145)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:342)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.SingleMemberInjector.getMemberArguments(SingleMemberInjector.java:61)
at org.picocontainer.injectors.MethodInjector.getMemberArguments(MethodInjector.java:100)
at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:112)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1033)
at org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1025)
at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1002)
at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:766)
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:91)
at org.sonar.batch.bootstrapper.Batch.start(Batch.java:81)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
... 9 more
Caused by: java.net.SocketTimeoutException: Read timed out
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1674)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1672)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1670)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1243)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
at org.sonar.api.utils.HttpDownloader$BaseHttpDownloader$HttpInputSupplier.getInput(HttpDownloader.java:274)
at org.sonar.api.utils.HttpDownloader$BaseHttpDownloader$HttpInputSupplier.getInput(HttpDownloader.java:235)
at org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:87)
... 80 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:633)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:579)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1322)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2677)
at java.net.URLConnection.getContentEncoding(URLConnection.java:533)
at org.sonar.api.utils.HttpDownloader$BaseHttpDownloader$HttpInputSupplier.getInput(HttpDownloader.java:272)
... 82 more
SonarQube Runner 2.4
Java 1.7.0_25 Oracle公司(64位)
Windows 7 6.1 amd64
信息:错误堆栈跟踪已打开。
信息:默认区域设置:“en_US”,源代码编码:“windows-1252”(分析依赖于平台)
信息:SonarQube服务器4.4
09:14:24.854信息-加载全局设置
信息:------------------------------------------------------------------------
信息:执行失败
信息:------------------------------------------------------------------------
总时间:21.447秒
最终内存:17M/308M
信息:------------------------------------------------------------------------
错误:执行Sonar runner时出错
org.sonar.runner.impl.RunnerException:无法执行sonar
位于org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
位于org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
位于java.security.AccessController.doPrivileged(本机方法)
位于org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
位于org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
位于org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
位于org.sonar.runner.api.runner.execute(runner.java:100)
位于org.sonar.runner.Main.executeTask(Main.java:70)
位于org.sonar.runner.Main.execute(Main.java:59)
位于org.sonar.runner.Main.Main(Main.java:53)
原因:java.lang.IllegalStateException:无法请求:/batch\u bootstrap/properties?dryRun=false
位于org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:91)
位于org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:81)
位于org.sonar.batch.bootstrap.ServerClient.request(ServerClient.java:77)
在org.sonar.batch.settings.DefaultSettingsReferential.downloadSettings(DefaultSettingsReferential.java:65)上
在org.sonar.batch.settings.DefaultSettingsReferential.globalSettings上(DefaultSettingsReferential.java:51)
位于org.sonar.batch.bootstrap.BatchSettings.downloadSettings(BatchSettings.java:94)
位于org.sonar.batch.bootstrap.BatchSettings.init(BatchSettings.java:74)
位于org.sonar.batch.bootstrap.BatchSettings.(BatchSettings.java:57)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:145)
位于org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:342)
在org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicdDependencyGuard.observe上(AbstractInjector.java:270)
位于org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
位于org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
位于org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
位于org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
位于org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698)
位于org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646)
位于org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:631)
位于org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
位于org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
位于org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
位于org.picocontainer.injectors.SingleMemberInjector.getMemberArguments(SingleMemberInjector.java:61)
位于org.picocontainer.injectors.MethodInjector.getMemberArguments(MethodInjector.java:100)
位于org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:112)
在org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicdDependencyGuard.observe上(AbstractInjector.java:270)
位于org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
在org.picocontainer.injec.CompositeInjec上