We have an outdated SonarQube Enterprise 8.1 server that is not able to analyze our newer Typescript projects given to it being out of date.
While we wait for the IT org to get the platform upgraded, we downloaded both the docker container image and windows ZIP files for versions 8.9, 9.9 and 10.3, using sonar scanner via docker image or ZIP download for versions 5.0.1 and 4.81 and are unable to get the scan to complete. The git project has 4 submodules and approximately 1500 files to be analyzed.
Other than it taking a very long time, it hangs attempting to start up the node server and we get a bundle server timeout error on every combination of the above.
I looked through a bunch of posts and see similar issues being reported. I have increased the memory. We are running the sonar scanner on a windows 10 enterprise VM with 4 cpu and 16 GB of RAM. I saw the post to increase the memory which also doesn’t work.
sonar-project.properties:
sonar.projectKey=XXXXX
sonar.projectName=XXXXX
sonar.verbose=true
sonar.exclusions=node_modules/**, **/coverage/**, ./src/**/*.stories.js, ./src/**/*.test.js, ./src/test-utils/**,.next/**,.cache/**,yarn.lock
sonar.test.inclusion=**/*.test.js
sonar.test.exclusions= ./src/**/*.js, ./src/**/*.json, **/__mocks__/**, ./src/**/*.test.js, ./src/test-utils/**
sonar.coverage.exclusions=**/*.stories.js, **/*.test.js, ./src/test-utils/**, ./src/setupTests.js
sonar.javascript.lcov.reportPaths=/usr/src/app/coverage/lcov.info
sonar.javascript.node.maxspace=6144
It takes a long time for things to start:
16:51:57.903 DEBUG: Using Node.js v18.17.0.
16:51:57.904 DEBUG: Starting Node.js process to start eslint-bridge server at port 33205
16:51:57.904 DEBUG: Launching command node --max-old-space-size=6144 /usr/src/.scannerwork/.sonartmp/eslint-bridge-bundle/package/bin/server 33205 127.0.0.1 /usr/src/.scannerwork true false
16:54:55.812 DEBUG: starting eslint-bridge server at port 33205
16:54:55.837 DEBUG: eslint-bridge server is running at port 33205
16:54:56.067 DEBUG: Starting server (done) | time=178216ms
16:54:56.135 DEBUG: Using generated tsconfig.json file /usr/src/.scannerwork/.sonartmp/11349542101882490689.tmp
16:54:56.158 DEBUG: Analysis of unchanged files will not be skipped (current analysis requires all files to be analyzed)
Here is the Exception from SonarQube version 8.9
ERROR: eslint-bridge Node.js process is unresponsive. This is most likely caused by process running out of memory. Consider setting sonar.javascript.node.maxspace to higher value (e.g. 4096).
ERROR: Failure during analysis, Node.js command to start eslint-bridge was: node --max-old-space-size=6144 /usr/src/.scannerwork/.sonartmp/eslint-bridge-bundle/package/bin/server 41115 127.0.0.1 /usr/src/.scannerwork true false
java.lang.IllegalStateException: eslint-bridge is unresponsive
at org.sonar.plugins.javascript.eslint.EslintBridgeServerImpl.request(EslintBridgeServerImpl.java:305)
at org.sonar.plugins.javascript.eslint.EslintBridgeServerImpl.createProgram(EslintBridgeServerImpl.java:377)
at org.sonar.plugins.javascript.eslint.AnalysisWithProgram.analyzeFiles(AnalysisWithProgram.java:96)
at org.sonar.plugins.javascript.eslint.TypeScriptSensor.analyzeFiles(TypeScriptSensor.java:95)
at org.sonar.plugins.javascript.eslint.AbstractEslintSensor.execute(AbstractEslintSensor.java:69)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:82)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:403)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:399)
at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:368)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:137)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
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:126)
at org.sonarsource.scanner.cli.Main.execute(Main.java:81)
at org.sonarsource.scanner.cli.Main.main(Main.java:62)
Caused by: java.net.http.HttpTimeoutException: request timed out
at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:559)
at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
at org.sonar.plugins.javascript.eslint.EslintBridgeServerImpl.request(EslintBridgeServerImpl.java:297)
... 34 common frames omitted
Both the scanner VM and Server VM are on our internal network. Please let me know what else we can check to get this working.