Sonarqube扫描仪错误目录NOTEMPTYEXCEPTION

Sonarqube扫描仪错误目录NOTEMPTYEXCEPTION,sonarqube,sonarqube-scan,Sonarqube,Sonarqube Scan,我正在Citrix远程机器上使用sonarqube扫描仪。在扫描过程中,代码分析完成并压缩。但是在上传这个压缩文件时,我得到了java.nio.file.DirectoryNotEmptyException,没有任何东西上传到sonarqube服务器 请注意,对于小型项目,扫描仪可以正常工作。它不仅适用于大型项目。我的sonarqube版本是7.2.1。同样的事情也发生在6.7版LTS中。但它在5.6版LTS中工作得非常好 我已尝试在sonar scanner.properties文件中设置so

我正在Citrix远程机器上使用
sonarqube
扫描仪。在扫描过程中,代码分析完成并压缩。但是在上传这个压缩文件时,我得到了
java.nio.file.DirectoryNotEmptyException
,没有任何东西上传到
sonarqube
服务器

请注意,对于小型项目,扫描仪可以正常工作。它不仅适用于大型项目。我的
sonarqube
版本是7.2.1。同样的事情也发生在6.7版LTS中。但它在5.6版LTS中工作得非常好

我已尝试在
sonar scanner.properties
文件中设置
sonar.ws.timeout=9000
,以增加时间。这不起作用

错误消息是:

INFO: 7 files had no CPD blocks
INFO: Calculating CPD for 521 files
INFO: CPD calculation finished
INFO: Analysis report generated in 4886ms, dir size=15 MB
INFO: Analysis reports compressed in 3769ms, zip size=4 MB
ERROR: Failed to delete temp folder
java.nio.file.DirectoryNotEmptyException: C:\codeAnalyzer\bhatk\.scannerwork\.sonartmp
        at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProv
ider.java:266)
        at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSyst
emProvider.java:108)
        at java.nio.file.Files.deleteIfExists(Files.java:1165)
        at org.sonar.api.utils.internal.DefaultTempFolder$DeleteRecursivelyFileV
isitor.postVisitDirectory(DefaultTempFolder.java:121)
        at org.sonar.api.utils.internal.DefaultTempFolder$DeleteRecursivelyFileV
isitor.postVisitDirectory(DefaultTempFolder.java:110)
        at java.nio.file.Files.walkFileTree(Files.java:2688)
        at java.nio.file.Files.walkFileTree(Files.java:2742)
        at org.sonar.api.utils.internal.DefaultTempFolder.clean(DefaultTempFolde
r.java:97)
        at org.sonar.api.utils.internal.DefaultTempFolder.stop(DefaultTempFolder
.java:106)
        at org.sonar.scanner.analysis.AnalysisTempFolderProvider.stop(AnalysisTe
mpFolderProvider.java:61)
        at org.picocontainer.DefaultPicoContainer.stopAdapters(DefaultPicoContai
ner.java:1048)
        at org.picocontainer.DefaultPicoContainer.stop(DefaultPicoContainer.java
:803)
        at org.sonar.core.platform.ComponentContainer.stopComponents(ComponentCo
ntainer.java:165)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer
.java:124)
        at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
        at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:
81)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentC
ontainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer
.java:122)
        at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContain
er.java:132)
        at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:71)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.exec
ute(BatchIsolatedLauncher.java:46)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(Iso
latedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner
.java:171)
        at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.j
ava:128)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:111)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)

INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE  
INFO: ------------------------------------------------------------------------
INFO: Total time: 3:27.575s
INFO: Final Memory: 60M/2882M
INFO: -----------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Fail to request http://localhost:9000/api/ce/submit?projectKey=my:project
&projectName=My%20project
ERROR: Caused by: timeout
ERROR: Caused by: Socket closed
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging
.

从OkHttp库继承的默认10s writeTimeout导致的错误。虽然readTimeout可由sonar.ws.timeout参数配置,但WriteMout当前不可配置。在某些情况下,根据分析报告的大小和/或您的基础结构设置,10秒不足以上载导致套接字超时错误和DirectoryNotEmptyException的分析报告。我已实施修复并将其提交给SonarSource github:

如果停止SonarQube,删除.sonartmp文件夹的内容并重新启动,会发生什么情况?引发异常后,.sonartmp文件夹的内容最终会被删除。分析的zip文件夹是.sonartmp的内容。可能是防病毒程序锁定了zip文件进行扫描?我在某个地方读到,如果系统有防病毒软件,声纳可能无法正常工作