SonarQube通过http请求项目属性的结果为;java.net.SocketTimeoutException:读取超时;

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)

当使用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
  • 加载模块特性时的中间时间(例如<代码> >http://hostname:9000/batch_bootstrap/properties?dryRun=false&project=MyProj:MyModule)
  • 我一直在寻找增加插座超时的方法,但似乎在某个时候删除了以下Sonar Runner分析参数:

    • sonar.host.connectTimeoutMs
    • sonar.host.readTimeoutMs
    故障排除注意事项:

    • 我已关闭LDAP身份验证,但问题仍然存在
    • 我可以通过web浏览器完成http请求(例如,键入
      http://hostname:9000/batch_bootstrap/properties?dryRun=false
      进入Firefox)很好,请求立即完成,这并不意味着延迟会导致超时
    关于可能的原因以及如何诊断/排除此问题的想法

    以下是其中一个故障的日志输出:

    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上