Search code examples
node.jsintellij-ideaintellij-pluginsonarlintsonarlint-intellij

SonarLint intellij plugin SonarTS Server Error With Node


I am trying to bind a sonarqube server to the sonarlint plugin in intellij to pull in the ruleset in sonarqube to show me issues inside of intellij.

For some Reason when I scan the file with sonarlint it shows no errors but in the sonarqube.com the files have issues which leads me to believe there is an issue with the plugin when it binds to a server because when I remove the binding and set local rules issues begin to show up.

setting my own rules inside of sonarlint plugin works just fine. But when i select Bind project to SonarQube/SonarCloud and configure the option i begin seeing an error inside of the log tab for the sonarlint plugin

Error Below:

Starting SonarTS Server
Deploying bundle to /Users/{{userid}}/Library/Caches/JetBrains/IntelliJIdea2020.3/tmp/sonarlint/.sonartmp_8840237824731938236/15046073373381757830
Failed to start SonarTS Server
java.io.IOException: Cannot run program "node": error=2, No such file or directory
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
    at org.sonar.plugin.typescript.ContextualServer.startSonarTSServer(ContextualServer.java:114)
    at org.sonar.plugin.typescript.ContextualServer.start(ContextualServer.java:92)
    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.sonarlint.shaded.org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)
    at org.sonarsource.sonarlint.core.container.ComponentContainer$1.start(ComponentContainer.java:272)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.Stored.start(Stored.java:110)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
    at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
    at org.sonarsource.sonarlint.core.container.storage.StorageContainer.doAfterStart(StorageContainer.java:127)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:126)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:118)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.lambda$update$2(ConnectedSonarLintEngineImpl.java:176)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withRwLock(ConnectedSonarLintEngineImpl.java:330)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.update(ConnectedSonarLintEngineImpl.java:169)
    at org.sonarlint.intellij.tasks.BindingStorageUpdateTask.run(BindingStorageUpdateTask.java:96)
    at org.sonarlint.intellij.tasks.BindingStorageUpdateTask$2.run(BindingStorageUpdateTask.java:82)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:962)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5(CoreProgressManager.java:472)
    at com.intellij.codeWithMe.ClientId$Companion$decorateFunction$1.apply(ClientId.kt:159)
    at com.intellij.codeWithMe.ClientId$Companion$decorateFunction$1.apply(ClientId.kt:159)
    at com.intellij.codeWithMe.ClientId$Companion$decorateFunction$1.apply(ClientId.kt:159)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:235)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:178)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:165)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:235)
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: error=2, No such file or directory
    at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
    at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
    ... 46 more

When Scanning the typescript files this is the log output:

Trigger: ACTION
[Action] 1 file(s) submitted
Configuring analysis with org.sonarlint.intellij.analysis.JavaAnalysisConfigurator
Using connection 'final sonarqube company' for project 'com.company.fc:projectname'
Analysing 'app.component.ts'...
Starting analysis with configuration:
[
  projectKey: com.company.fc:projectname
  baseDir: /Users/userid/projects/projectname
  extraProperties: {sonar.java.target=15, sonar.java.source=15}
  inputFiles: [
    file:///Users/userid/projects/projectname/src/app/app.component.ts (UTF-8)
  ]
]

    Start analysis
    Index files
    Language of file 'file:///Users/userid/projects/projectname/src/app/app.component.ts' is detected to

 be 'TypeScript'
    1 file indexed
    Available languages:
      * Python => "py"
      * Kotlin => "kotlin"
      * HTL => "htl"
      * JavaScript => "js"
      * Ruby => "ruby"
      * Scala => "scala"
      * Java => "java"
      * HTML => "web"
      * JSP => "jsp"
      * XML => "xml"
      * PHP => "php"
      * TypeScript => "ts"
      * Swift => "swift"
    Quality profiles:
      * htl: 'AEM HTL Profile' (17 rules)
      * java: 'Sonar Way + Craftsmanship + Checkmarx' (1032 rules)
      * js: 'Sonar way Recommended' (128 rules)
      * jsp: 'FindBugs Security JSP' (4 rules)
      * kotlin: 'Sonar way' (30 rules)
      * php: 'Sonar way' (101 rules)
      * py: 'Sonar way' (31 rules)
      * ruby: 'Sonar way' (29 rules)
      * scala: 'Sonar way' (28 rules)
      * swift: 'Sonar way' (61 rules)
      * ts: 'Sonar way recommended' (112 rules)
      * web: 'Sonar way' (18 rules)
      * xml: 'Sonar way' (4 rules)
    'JavaSquidSensor' skipped because there is no related file in current project
    'Python Squid Sensor' skipped because there is no related file in current project
    'Kotlin Sensor' skipped because there is no related file in current project
    'SonarJS' skipped because there is no related file in current project
    'ESLint-based SonarJS' skipped because there is no related file in current project
    'Ruby Sensor' skipped because there is no related file in current project
    'Scala Sensor' skipped because there is no related file in current project
    'JavaXmlSensor' skipped because one of the required properties is missing
    Execute Sensor: HTML
    'XML Sensor' skipped because there is no related file in current project
    'PHP sensor' skipped because there is no related file in current project
    'Analyzer for "php.ini" files' skipped because there is no related file in current project
    Execute Sensor: Contextual SonarTS
    Skipped analysis as SonarTS Server is not running
    'SonarSwift' skipped because there is no related file in current project
    Done in 20ms
    
    Processed 0 issues in 0 ms
    Found 0 issues

Using intellij 2020.3.2 with java 11

   / which node
   /usr/local/bin/node

   / node -v
   v13.10.1

   / npm -v
   6.13.7

node path inside of sonarlint plugin


Solution

  • seems like the sonar server i am trying to connect to is out dated, I wasn't able to solve this but using sonarqube community plugin worked instead of sonarlint.