Skip to content

Go lang stack analysis error #224

@soul2zimate

Description

@soul2zimate

What happened?

I see this error when I make the stack dependency analytics on go lang:

java.lang.RuntimeException: Failed to execute command 'go mod download' 
    at io.github.guacsec.trustifyda.tools.Operations.runProcessGetOutput(Operations.java:191)
    at io.github.guacsec.trustifyda.tools.Operations.runProcessGetOutput(Operations.java:161)
    at io.github.guacsec.trustifyda.providers.GoModulesProvider.getFinalPackagesVersionsForModule(GoModulesProvider.java:321)
    at io.github.guacsec.trustifyda.providers.GoModulesProvider.buildSbomFromGraph(GoModulesProvider.java:284)
    at io.github.guacsec.trustifyda.providers.GoModulesProvider.getDependenciesSbom(GoModulesProvider.java:142)
    at io.github.guacsec.trustifyda.providers.GoModulesProvider.provideStack(GoModulesProvider.java:76)
    at io.github.guacsec.trustifyda.impl.ExhortApi.buildStackRequest(ExhortApi.java:430)
    at io.github.guacsec.trustifyda.impl.ExhortApi.stackAnalysisHtml(ExhortApi.java:236)
    at org.jboss.tools.intellij.exhort.ApiService.getStackAnalysis(ApiService.java:77)
    at org.jboss.tools.intellij.stackanalysis.SaUtils.performSA(SaUtils.java:30)
    at org.jboss.tools.intellij.stackanalysis.SaAction.lambda$actionPerformed$3(SaAction.java:71)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:265)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
    at com.intellij.util.concurrency.ContextCallable.lambda$call$1(ContextCallable.java:86)
    at com.intellij.util.concurrency.ContextCallable.call(ContextCallable.java:95)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:102)
    at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:102)
    at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:108)
    at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:102)
    at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.io.IOException: Cannot run program "go" (in directory "/Users/chaowan/work/git/redhat-developer/examples/go-example"): error=2, No such file or directory
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089)
    at java.base/java.lang.Runtime.exec(Runtime.java:681)
    at io.github.guacsec.trustifyda.tools.Operations.runProcessGetOutput(Operations.java:177)
    ... 27 more
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:295)
    at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:225)
    at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1126)
    ... 30 more

This happens because getFinalPackagesVersionsForModule doesn't use the resolved go executable path.

This is uncovered by #188 which set the use of the MVS algorithm default to true and trigger the getFinalPackagesVersionsForModule method by default.

Please provide runtime information.

version v0.0.10

Relevant log output

How can this issue be reproduced?

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions