Sonar Scanner выдает EOFException - не может прочитать строку состояния HTTP

При выполнении сканирования сонара на локальном или jenkins-сервере через некоторое время (около 20 минут попыток анализа определенного файла) выдается следующая ошибка:

00:45:31.439 INFO: 21/57 files analyzed
00:45:31.688 INFO: ------------------------------------------------------------------------
00:45:31.688 INFO: EXECUTION FAILURE
00:45:31.689 INFO: ------------------------------------------------------------------------
00:45:31.690 INFO: Total time: 21:53.981s
00:45:31.973 INFO: Final Memory: 36M/127M
00:45:31.974 INFO: ------------------------------------------------------------------------
00:45:31.975 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Error when executing blame for file local_path_to_file.java
        at org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:85)
        at org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:58)
        at org.sonar.scanner.scm.ScmPublisher.publish(ScmPublisher.java:85)
        at org.sonar.scanner.phases.PublishPhaseExecutor.afterSensors(PublishPhaseExecutor.java:60)
        at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:90)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
        at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
        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.execute(BatchIsolatedLauncher.java:46)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
        at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: can not read HTTP status line
svn: E175002: REPORT request failed on 'svn_path_to_file.java'
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:112)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:96)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:765)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:352)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:340)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:888)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:354)
        at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doReport(DAVConnection.java:344)
        at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getFileRevisionsImpl(DAVRepository.java:920)
        at org.tmatesoft.svn.core.io.SVNRepository.getFileRevisions(SVNRepository.java:756)
        at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteAnnotate.run(SvnRemoteAnnotate.java:109)
        at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteAnnotate.run(SvnRemoteAnnotate.java:30)
        at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
        at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
        at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
        at org.tmatesoft.svn.core.wc.SVNLogClient.doAnnotate(SVNLogClient.java:295)
        at org.sonar.plugins.scm.svn.SvnBlameCommand.blame(SvnBlameCommand.java:83)
        ... 31 more
Caused by: java.io.IOException: can not read HTTP status line
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:460)
        ... 45 more
Caused by: java.io.EOFException: can not read HTTP status line
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPParser.parseStatus(HTTPParser.java:45)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readHeader(HTTPConnection.java:263)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:179)
        at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:451)

SVN используется в качестве технологии репозитория. У меня нет проблем ни с доступом к файлу, ни с подключением к серверу SonarQube, токены проверяются, а также имя и код проекта.

Я понятия не имею, почему он не работает с этим конкретным файлом всегда.

Любая помощь приветствуется.


person Mauricio    schedule 19.12.2019    source источник
comment
Ошибка от SVNKit, а не от SVN. Попробуйте предложение о буферизации с issues.tmatesoft.com/issue/SGT-989.   -  person bahrep    schedule 19.12.2019


Ответы (1)


Что ж, после некоторых проб и ошибок я заметил, что репозиторий SVN несколько нестабилен. Даже при этом, после запуска сканирования со свойством sonar.scm.disabled=true, анализ можно запустить правильно, за исключением того, что он не может получить некоторые метаданные из репозитория. Я рискну предположить, что выполнение пытается собрать некоторые данные об авторе для отчета сонара и терпит неудачу. Включение указанного свойства запускает сканирование, но без какой-либо информации, поэтому я думаю, что это обходной путь, а не полное решение. Нестабильный статус SVN также может повлиять на это.

person Mauricio    schedule 20.12.2019