java.io.IOException: Cannot run program "node": error=2, No such file or directory

25,799 views
Skip to first unread message

li.b...@gmail.com

unread,
Dec 7, 2017, 1:21:22 PM12/7/17
to SonarQube

Hi there,

Hope this message finds you well.


I am using SonarQube 6.4 with SonarTS 1.1. I initiate the SonarQube Scanner using a Bamboo task (6.0.3) . When I run the build, I get the below error:


java.lang.IllegalStateException: Failed to run external process `node /var/lib/bamboo/bamboo-agent-home/xml-data/build-dir/PLAYG-SONSLUI-JOB1/.sonar/sonarts-bundle/node_modules/tslint-sonarts/bin/tsrunner`. Run with -X for more information

        at org.sonar.plugin.typescript.ExternalTypescriptSensor.executeExternalRunner(ExternalTypescriptSensor.java:190)

        at org.sonar.plugin.typescript.ExternalTypescriptSensor.analyze(ExternalTypescriptSensor.java:117)

        at org.sonar.plugin.typescript.ExternalTypescriptSensor.execute(ExternalTypescriptSensor.java:103)

        at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)

        at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:87)

        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:81)

        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:67)

        at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:75)

        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:178)

        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)

        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)

        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:259)

        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:254)

        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:243)

        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)

        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)

        at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)

        at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)

        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)

        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)

        at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:118)

        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:117)

        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:497)

        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:233)

        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)

        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110)

        at org.sonarsource.scanner.cli.Main.execute(Main.java:74)

        at org.sonarsource.scanner.cli.Main.main(Main.java:61)

Caused by: java.io.IOException: Cannot run program "node": error=2, No such file or directory

        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

        at org.sonar.plugin.typescript.ExternalTypescriptSensor.executeExternalRunner(ExternalTypescriptSensor.java:175)

        ... 33 more

Caused by: java.io.IOException: error=2, No such file or directory

        at java.lang.UNIXProcess.forkAndExec(Native Method)

        at java.lang.UNIXProcess.<init>(UNIXProcess.java:248)

        at java.lang.ProcessImpl.start(ProcessImpl.java:134)

        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

        ... 34 more


Based on the path from the build agent, it loads the module below:

% module load nodejs/4.1.2

% which node

/mnt/software/n/nodejs/4.1.2/bin/node

% node --version

v4.1.2


It makes me confused two days. Am I miss anything? Any help would be greatly appreciated.


Thanks a lot,

Betty

nicolas...@sonarsource.com

unread,
Dec 8, 2017, 4:40:34 AM12/8/17
to SonarQube
Hi Betty,

Quoting the SonarTS documentation, did you check that:
In your project, make sure to have typescript as a project dependency or dev dependency. If it's not the case, add it : cd your-project-folder; npm install --only=dev typescript
If you can't have typescript as a project dependency you can set your 'NODE_PATH' variable to point to your globally installed typescript, but this is generally discouraged in the node.js documentation.

Best regards,
Nicolas

Elena Vilchik

unread,
Dec 26, 2017, 5:42:52 AM12/26/17
to SonarQube
Hello,

"Caused by: java.io.IOException: Cannot run program "node": error=2, No such file or directory"

It means that node is not available. I see your proves of opposite, but are you sure about it?
Anyway, try to update everything (nodejs + SonarTS)

Regards,
Elena

On Thursday, 7 December 2017 19:21:22 UTC+1, li.b...@gmail.com wrote:

Bangar Milind

unread,
Jan 24, 2018, 9:19:08 AM1/24/18
to SonarQube
Hi,

I am getting the same issue while analysing Angular project using SonarTS plugin.

14:15:24.671 DEBUG: TypeScript compiler is found in this directory /mnt/JENKINS_HOME/workspace/CI-Ionic-App/node_modules
14:15:24.671 DEBUG: It will be used for analysis of typescript files
14:15:24.671 DEBUG: Deploying bundle from `/sonarts-bundle.zip` to `/mnt/JENKINS_HOME/workspace/CI-Ionic-App/.scannerwork`
14:15:24.772 DEBUG: Checking node version
14:15:24.778 ERROR: Failed to get Node.js version
java.io.IOException: Cannot run program "node": error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at java.lang.Runtime.exec(Runtime.java:620)
	at java.lang.Runtime.exec(Runtime.java:450)
	at java.lang.Runtime.exec(Runtime.java:347)
	at org.sonar.plugin.typescript.ExternalTypescriptSensor.isCompatibleNodeVersion(ExternalTypescriptSensor.java:157)
	at org.sonar.plugin.typescript.ExternalTypescriptSensor.analyze(ExternalTypescriptSensor.java:117)
	at org.sonar.plugin.typescript.ExternalTypescriptSensor.execute(ExternalTypescriptSensor.java:111)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
	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.executeTask(Batch.java:111)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	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:233)
	at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
	at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	... 38 common frames omitted

14:15:24.778 ERROR: No TypeScript files will be analyzed
14:15:24.778 INFO: Sensor SonarTS [typescript] (done) | time=110ms
14:15:24.778 INFO: Sensor SonarTS Coverage [typescript]
14:15:24.778 INFO: Sensor SonarTS Coverage [typescript] (done) | time=0ms

Bangar Milind

unread,
Jan 24, 2018, 9:23:08 AM1/24/18
to SonarQube
Forgot to mention, tscript is as dev dependency in my project.

Thanks
Milind

Elena Vilchik

unread,
Jan 24, 2018, 10:27:40 AM1/24/18
to SonarQube
Hello Bangar,

Logs explicitly say that Node is not found

14:15:24.772 DEBUG: Checking node version
14:15:24.778 ERROR: Failed to get Node.js version
java.io.IOException: Cannot run program "node": error=2, No such file or directory

Do you have it installed?

Regards,
Elena

Bangar Milind

unread,
Jan 24, 2018, 11:03:29 AM1/24/18
to SonarQube
Hi Elena,

Do I need to install node on Jenkins box? 

Isn't that taken care when I am running "npm install node" in my Jenkins pipeline?

Thanks in advance.

Regards
Milind 

Elena Vilchik

unread,
Jan 24, 2018, 11:11:10 AM1/24/18
to Bangar Milind, SonarQube
Yep, you need to install node on jenkins machine (might help https://nodejs.org/en/download/package-manager/)
And then run "npm install" from project dir to download dependencies for your project (including typescript).
I doubt that "npm install node" will install node, node and npm usually delivered together.

--
You received this message because you are subscribed to a topic in the Google Groups "SonarQube" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonarqube/jtwEL7e6-w0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sonarqube+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarqube/6527d9cb-98f8-4d65-8f4a-e6eb62432451%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

Elena Vilchik | 
SonarSource
Language Team

Bangar Milind

unread,
Jan 24, 2018, 5:38:15 PM1/24/18
to SonarQube
HI Elena,

Thanks for the same.

Installed NodeJs and everything works like a charm.

Except that CodeCoverage is not shown on the project, which I believe is because of the mapping required to read the outcome of karma/Istanbul tests.

Thanks
Milind

Elena Vilchik

unread,
Jan 25, 2018, 9:39:04 AM1/25/18
to Bangar Milind, SonarQube
Don't forget that property for coverage is "sonar.typescript.lcov.reportPaths" (like here https://github.com/SonarSource/SonarTS/blob/master/sonarts-core/sonar-project.properties#L8), 


For more options, visit https://groups.google.com/d/optout.

sures...@gmail.com

unread,
May 29, 2018, 5:16:58 AM5/29/18
to SonarQube
Hi Elena,

I'm getting below error when i run SONARQUBE TYPESCRIPT from Jenkins.please help

ERROR: Failed to get Node.js version

java.io.IOException: Cannot run program "D:\Users\USERNAME\AppData\Roaming\npm\node_modules": CreateProcess error=5, Access is denied 

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 

at java.lang.Runtime.exec(Runtime.java:620) 

at java.lang.Runtime.exec(Runtime.java:450) 

at java.lang.Runtime.exec(Runtime.java:347) 

at org.sonar.plugin.typescript.ExternalTypescriptSensor.isCompatibleNodeVersion(ExternalTypescriptSensor.java:155) 

at org.sonar.plugin.typescript.ExternalTypescriptSensor.analyze(ExternalTypescriptSensor.java:115) 

at org.sonar.plugin.typescript.ExternalTypescriptSensor.execute(ExternalTypescriptSensor.java:109) 

at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53) 

at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88) 

at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82) 

at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68) 

at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88) 

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:302) 

at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:297) 

at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:271) 

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.executeTask(Batch.java:111) 

at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63) 

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 

at java.lang.reflect.Method.invoke(Method.java:498) 

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:233) 

at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) 

at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123) 

at org.sonarsource.scanner.cli.Main.execute(Main.java:77) 

at org.sonarsource.scanner.cli.Main.main(Main.java:61) 

Caused by: java.io.IOException: CreateProcess error=5, Access is denied 

at java.lang.ProcessImpl.create(Native Method) 

at java.lang.ProcessImpl.<init>(ProcessImpl.java:386) 

at java.lang.ProcessImpl.start(ProcessImpl.java:137) 

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 

... 38 common frames omitted 

 

ERROR: No TypeScript files will be analyzed 

INFO: Sensor SonarTS [typescript] (done) | time=1085ms 

Elena Vilchik

unread,
May 29, 2018, 5:22:20 AM5/29/18
to SonarQube
Please start a new thread
Reply all
Reply to author
Forward
0 new messages