Sonarlint on VSCode remote extension fails with "Unable to get Java config"

I’m running VSCode 1.71.2 with the SonarLint extension 3.10.0 on a Mac using our company internal SonarQube server and that works.
I’m also using remote development with ssh and try to use the SonarLint extension there on a Linux Red Hat device.
When I load a new remote file it eventually fails with this error:

[Error - 11:20:35.566] Unable to get Java config

java.util.concurrent.TimeoutException
at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)
at org.sonarsource.sonarlint.ls.java.JavaConfigCache.getOrFetch(JavaConfigCache.java:66)
at org.sonarsource.sonarlint.ls.file.FolderFileSystem.isTestFile(FolderFileSystem.java:77)
at org.sonarsource.sonarlint.ls.file.FolderFileSystem.typeMatches(FolderFileSystem.java:73)
at org.sonarsource.sonarlint.ls.file.FolderFileSystem.lambda$files$2(FolderFileSystem.java:53)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at org.sonar.plugins.python.indexer.SonarLintPythonIndexer.getInputFiles(SonarLintPythonIndexer.java:82)
at org.sonar.plugins.python.indexer.SonarLintPythonIndexer.buildOnce(SonarLintPythonIndexer.java:59)
at org.sonar.plugins.python.PythonScanner.<init>(PythonScanner.java:83)
at org.sonar.plugins.python.PythonSensor.execute(PythonSensor.java:125)
at org.sonarsource.sonarlint.core.analysis.container.analysis.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:75)
at org.sonarsource.sonarlint.core.analysis.container.analysis.sensor.SensorsExecutor.execute(SensorsExecutor.java:66)
at org.sonarsource.sonarlint.core.analysis.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:122)
at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.startComponents(SpringComponentContainer.java:182)
at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.execute(SpringComponentContainer.java:161)
at org.sonarsource.sonarlint.core.analysis.container.module.ModuleContainer.analyze(ModuleContainer.java:71)
at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.execute(AnalyzeCommand.java:58)
at org.sonarsource.sonarlint.core.analysis.command.AnalyzeCommand.execute(AnalyzeCommand.java:32)
at org.sonarsource.sonarlint.core.analysis.AnalysisEngine$AsyncCommand.execute(AnalysisEngine.java:153)
at org.sonarsource.sonarlint.core.analysis.AnalysisEngine.executeQueuedCommands(AnalysisEngine.java:71)
at java.base/java.lang.Thread.run(Unknown Source)

Here are the SonarLint logs (I X’d out our company internal strings):

[Info - 10:29:03.087] Started security hotspot handler on port 64120

Initializing file:///home/XXX on branch undefined

Initializing file:///home/XXX on branch master

[Info - 10:29:07.254] Downloaded plugin list in 23ms

[Info - 10:29:07.256] [SYNC] Synchronizing analyzer configuration for project '55c5de48-5e48-4f4c-9e35-ef0255f6789a'

[Info - 10:29:07.292] Downloaded settings in 31ms

[Info - 10:29:07.334] [SYNC] Fetching rule set for language 'apex' from profile 'AYDXsNzRYUbHiCnG8P2T'

[Info - 10:29:07.373] [SYNC] Fetching rule set for language 'c' from profile 'AWq7xmHASuNCDKx5B5PH'

[Info - 10:29:07.421] [SYNC] Fetching rule set for language 'cpp' from profile 'AWq7xmAaSuNCDKx5B5Jm'

[Info - 10:29:07.494] [SYNC] Fetching rule set for language 'java' from profile 'AW-0uycx5X5ahivak2Ia'

[Info - 10:29:07.567] [SYNC] Fetching rule set for language 'js' from profile 'AWsPrGPwyFjc5bS-FJF6'

[Info - 10:29:07.610] [SYNC] Fetching rule set for language 'php' from profile 'AWoM_WVT17KQ1fdMghPw'

[Info - 10:29:07.649] [SYNC] Fetching rule set for language 'plsql' from profile 'AWsPsXxdyFjc5bS-FJRk'

[Info - 10:29:07.656] [SYNC] Fetching rule set for language 'py' from profile 'AXy9sqO8fT587z6VpBgU'

[Info - 10:29:07.692] [SYNC] Fetching rule set for language 'ts' from profile 'AYHOzOnLctngaPxkDPUS'

[Info - 10:29:07.727] [SYNC] Fetching rule set for language 'web' from profile 'AWsPsJwPyFjc5bS-FJQa'

[Info - 10:29:07.734] [SYNC] Fetching rule set for language 'xml' from profile 'AWsPsuafyFjc5bS-FJZy'

[Info - 10:29:07.741] [SYNC] Fetching rule set for language 'yaml' from profile 'AX3jG0Jw2TwyXKHkZyLj'

[Info - 10:29:07.793] [SYNC] Synchronizing project branches for project '55c5de48-5e48-4f4c-9e35-ef0255f6789a'

Folder file:///home/XXX is now on branch master

Folder file:///home/XXX is now on branch master

Folder file:///home/XXX is now on branch master

Folder file:///home/XXX is now on branch master

[Info - 10:39:33.172] Downloaded plugin list in 10ms

[Info - 10:39:33.173] [SYNC] Synchronizing analyzer configuration for project '55c5de48-5e48-4f4c-9e35-ef0255f6789a'

[Info - 10:39:33.190] Downloaded settings in 17ms

[Info - 10:39:33.225] [SYNC] Fetching rule set for language 'apex' from profile 'AYDXsNzRYUbHiCnG8P2T'

[Info - 10:39:33.245] [SYNC] Fetching rule set for language 'c' from profile 'AWq7xmHASuNCDKx5B5PH'

[Info - 10:39:33.300] [SYNC] Fetching rule set for language 'cpp' from profile 'AWq7xmAaSuNCDKx5B5Jm'

[Info - 10:39:33.372] [SYNC] Fetching rule set for language 'java' from profile 'AW-0uycx5X5ahivak2Ia'

[Info - 10:39:33.493] [SYNC] Fetching rule set for language 'js' from profile 'AWsPrGPwyFjc5bS-FJF6'

[Info - 10:39:33.533] [SYNC] Fetching rule set for language 'php' from profile 'AWoM_WVT17KQ1fdMghPw'

[Info - 10:39:33.573] [SYNC] Fetching rule set for language 'plsql' from profile 'AWsPsXxdyFjc5bS-FJRk'

[Info - 10:39:33.581] [SYNC] Fetching rule set for language 'py' from profile 'AXy9sqO8fT587z6VpBgU'

[Info - 10:39:33.620] [SYNC] Fetching rule set for language 'ts' from profile 'AYHOzOnLctngaPxkDPUS'

[Info - 10:39:33.661] [SYNC] Fetching rule set for language 'web' from profile 'AWsPsJwPyFjc5bS-FJQa'

[Info - 10:39:33.677] [SYNC] Fetching rule set for language 'xml' from profile 'AWsPsuafyFjc5bS-FJZy'

[Info - 10:39:33.700] [SYNC] Fetching rule set for language 'yaml' from profile 'AX3jG0Jw2TwyXKHkZyLj'

[Info - 10:39:33.731] [SYNC] Synchronizing project branches for project '55c5de48-5e48-4f4c-9e35-ef0255f6789a'

[Info - 10:39:34.656] Analyzing file 'file:///home/XXX.py'...

Does anyone have any idea on how to fix this? Is there a timeout value I can increase?

Thanks

Hello @rrkraft and welcome to the community!

Thank you for your well structured and informative feedback. Problem is not the timeout. It’s that your python file analysis leads to attempt to get java config. It looks like a bug, we will take time to reproduce and investigate and get back to you with news here in this thread.

Hello @rrkraft,

I tried to reproduce this issue on my environment, but didn’t succeed. Can you please provide sample project or python file where this problem persistently appears?