Sonarcloud failed to fetch new code from Azure branches and received error in eslint

  • ALM used- Azure DevOps)
  • CI system used - Azure DevOps
  • Scanner command used when applicable (private details masked)
  • task: Bash@3
    inputs:
    targetType: ‘inline’
    script: |
    sudo chown -R vsts .
    sudo mkdir /.scannerwork
    sudo mkdir .sonar .sonar/cache
    sudo chmod -R 777 .sonar
    sudo chmod -R 777 /.scannerwork
    sudo chmod -R 777 /boot/efi
    echo ‘Given permissions to required folders’
    echo “$USER”
    failOnStderr: true
  • Languages of the repository - Angular
  • Only if the SonarCloud project is public, the URL - Private
    • And if you need help with pull request decoration, then the URL to the PR too
  • Error observed (wrap logs/code around with triple quotes ``` for proper formatting)
    ‘’’##[error]ERROR: Failure during analysis, Node.js command to start eslint-bridge was: node /.scannerwork/.sonartmp/eslint-bridge-bundle/package/bin/server 44577 127.0.0.1 /.scannerwork true false /.scannerwork/.sonartmp/eslint-bridge-bundle/package/custom-rules16946044931196923258/package
    java.io.UncheckedIOException: java.nio.file.AccessDeniedException: /boot/efi’’’
  • Steps to reproduce
    Setup build pipeline for Angular code in Azure DevOps to scan in Sonar Cloud.

Are we configuring the scanner in the right way or is there any settings or permission issue?

Hi @vamsi3i

I think this is the right way. We try to find any node executable in your workspace and execute it for analysis purposes.

So maybe yes this is a permission issue. Can you try to set the sonar.nodejs.executable to a node executable with permission, as per our documentation ?

HTH,
Mickaël

Thanks Mickael.
Where do we add sonar.nodejs.executable property?
I have checked in Sonarcloud project Administration as per documentation but did not find any.

Regards,
Vamsi.

@mickaelcaro I have printed the node version using bash. I am able to see node version as 10.
I see node availability may not be issue. Would you please suggest some other solution here.

Errorr…

ERROR: Failure during analysis, Node.js command to start eslint-bridge was: node /.scannerwork/.sonartmp/eslint-bridge-bundle/package/bin/server 42919 127.0.0.1 /.scannerwork true false /.scannerwork/.sonartmp/eslint-bridge-bundle/package/custom-rules12283211458149362890/package java.io.UncheckedIOException: java.nio.file.AccessDeniedException: /sys/kernel/debug/tracing at java.base/java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:87) at java.base/java.nio.file.FileTreeIterator.hasNext(FileTreeIterator.java:103) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132) at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at org.sonar.plugins.javascript.eslint.TsConfigProvider$LookupTsConfigProvider.tsconfigs(TsConfigProvider.java:111) at org.sonar.plugins.javascript.eslint.TsConfigProvider.tsconfigs(TsConfigProvider.java:73) at org.sonar.plugins.javascript.eslint.TypeScriptSensor.analyzeFiles(TypeScriptSensor.java:107) at org.sonar.plugins.javascript.eslint.AbstractEslintSensor.execute(AbstractEslintSensor.java:121) at org.sonar.plugins.javascript.eslint.TypeScriptSensor.execute(TypeScriptSensor.java:56) at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:45) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:75) at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:48) at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:66) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:48) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:68) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:445) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:441) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:399) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109) at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:128) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:58) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:52) 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(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) 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: java.nio.file.AccessDeniedException: /sys/kernel/debug/tracing at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) at java.base/sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:432) at java.base/java.nio.file.Files.newDirectoryStream(Files.java:472) at java.base/java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:300) at java.base/java.nio.file.FileTreeWalker.next(FileTreeWalker.java:373) at java.base/java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:94) … 43 common frames omitted

steps:

  • task: NodeTool@0

    inputs:

    versionSpec: ‘10.16.0’

  • task: Bash@3

    inputs:

    targetType: ‘inline’

    script: |

    sudo chown -R vsts .
    
    sudo mkdir /.scannerwork
    
    sudo mkdir .sonar .sonar/cache 
    
    sudo chmod -R 777 .sonar
    
    sudo chmod -R 777 /.scannerwork
    
    sudo chmod -R 777 /boot/efi
    
    sudo chmod -R 777 /sys/kernel/tracing
    
    sudo chmod 777 /sys/kernel/debug
    
    node -v
    
          
    
    echo 'Given permissions to required folders'
    
    echo "$USER"
    

    failOnStderr: true

  • ${{ if eq(parameters.sonar_analysis, true) }}:

    • task: SonarCloudPrepare@1

      inputs:

      SonarCloud: ‘Sonarcloud_Main’

      organization: ‘scltms’

      scannerMode: ‘CLI’

      configMode: ‘manual’

      cliProjectKey: ‘Scltms_tmsui’

      cliProjectName: ‘tmsui’

      cliSources: ‘.’

  • ${{ if eq(parameters.sonar_analysis, true) }}:

    • task: SonarCloudAnalyze@1
  • ${{ if eq(parameters.sonar_publish, true) }}:

    • task: SonarCloudPublish@1

      inputs:

      pollingTimeoutSec: ‘300’