100% CPU utilization and permanent errors in logs

Hello again. Trying to get the topic up.

After

  • 9 months
  • hw upgrade
  • windows update: Win10 → Win 11
  • IDE change: vscode → windsurf/cursor
  • SonarQube plugin update: → v4.33.0

Still at the same point:

When workspace up and initialized - SonarQube can be installed/enabled without any problems.

But when IDE gets restarted (with already installed and enabled SonarQube) - 100% CPU utilization and permanent errors in logs:

2025-10-20 09:51:33.975 [info] [Debug - 09:51:33.973] Skipping analysis of file not open in the editor: "file:///c:/Workspaces/git/testproject/testbackend/src/main/java/org/example/service/TestService.java"
2025-10-20 09:51:34.134 [info] [Error - 09:51:34.132] Unable to get Java config.
java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1960)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095)
	at org.sonarsource.sonarlint.ls.java.JavaConfigCache.getOrFetch(JavaConfigCache.java:64)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.lambda$isTestFile$3(ModuleEventsProcessor.java:128)
	at org.sonarsource.sonarlint.ls.file.FileTypeClassifier.isTest(FileTypeClassifier.java:42)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.isTestFile(ModuleEventsProcessor.java:128)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.lambda$getClientFileDto$1(ModuleEventsProcessor.java:118)
	at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.getClientFileDto(ModuleEventsProcessor.java:113)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.notifyBackendWithFileLanguageAndContent(ModuleEventsProcessor.java:95)
	at org.sonarsource.sonarlint.ls.SonarLintLanguageServer.lambda$didOpen$6(SonarLintLanguageServer.java:454)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

also these:

2025-10-20 09:51:33.879 [info] [Error - 09:51:33.867] Unable to get Java config.
java.util.concurrent.RejectedExecutionException: Thread limit exceeded replacing blocked worker
	at java.base/java.util.concurrent.ForkJoinPool.tryCompensate(ForkJoinPool.java:2000)
	at java.base/java.util.concurrent.ForkJoinPool.compensatedBlock(ForkJoinPool.java:3737)
	at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3723)
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1939)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095)
	at org.sonarsource.sonarlint.ls.java.JavaConfigCache.getOrFetch(JavaConfigCache.java:64)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.lambda$isTestFile$3(ModuleEventsProcessor.java:128)
	at org.sonarsource.sonarlint.ls.file.FileTypeClassifier.isTest(FileTypeClassifier.java:42)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.isTestFile(ModuleEventsProcessor.java:128)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.lambda$getClientFileDto$1(ModuleEventsProcessor.java:118)
	at java.base/java.util.Optional.ifPresentOrElse(Optional.java:196)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.getClientFileDto(ModuleEventsProcessor.java:113)
	at org.sonarsource.sonarlint.ls.folders.ModuleEventsProcessor.notifyBackendWithFileLanguageAndContent(ModuleEventsProcessor.java:95)
	at org.sonarsource.sonarlint.ls.SonarLintLanguageServer.lambda$didOpen$6(SonarLintLanguageServer.java:454)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

Tried different projects, different workspaces. Single-module, multiple-modules, multi-root workspaces. Same issue.

Is it possible somehow prioritize the Issue in bugtracker?

Hello @anar-ibragimoff,

I split out your reply into a separate new post. Thanks for reporting the issue!

SonarQube for IDE requires Java extension to be available in the IDE, we rely on it to fetch necessary Java-related configurations in order to run accurate analysis. The errors from the stacktrace indicate that fetching Java config failed.

Could you please share the list of extensions you have installed? And make sure it includes redhat.java extension?

Hope this helps,
Sophio

Windsurf

Windsurf Version: 1.12.21
Windsurf Extension Version: 1.48.2
Windsurf Commit: e070c40b16843043362e035ebe6169be63af2af9
VSCode OSS Version: 1.100.3 (user setup)
Commit: e070c40b16843043362e035ebe6169be63af2af9
Date: 2025-10-17T05:32:35.802Z
Electron: 34.5.1
ElectronBuildId: undefined
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.26100

Extensions:

Codeium.windsurf-dev-containers 0.0.1
Gruntfuggly.activitusbar 0.0.47
alefragnani.project-manager 12.8.0
codeium.windsurf 0.2.0
eamodio.gitlens 17.6.2
genuitecllc.codetogether 2025.1.0
johnpapa.vscode-peacock 4.2.2
josevseb.google-java-format-for-vs-code 1.2.0
mechatroner.rainbow-csv 3.19.0
medo64.render-crlf 1.9.2
oderwat.indent-rainbow 8.3.1
redhat.java 1.46.0
redhat.vscode-rsp-ui 0.24.12
robole.profile-status 0.16.0
vmware.vscode-spring-boot 1.64.0
vscjava.vscode-gradle 3.17.2025062603
vscjava.vscode-java-debug 0.58.2025042405
vscjava.vscode-java-dependency 0.26.1
vscjava.vscode-java-pack 0.30.3
vscjava.vscode-java-test 0.43.1
vscjava.vscode-spring-boot-dashboard 0.14.0
vscode.configuration-editing 1.0.0
vscode.debug-auto-launch 1.0.0
vscode.emmet 1.0.0
vscode.extension-editing 1.0.0
vscode.git 1.0.0
vscode.git-base 1.0.0
vscode.github 0.0.1
vscode.github-authentication 0.0.2
vscode.json-language-features 1.0.0
vscode.merge-conflict 1.0.0
vscode.npm 1.0.1
vscode.typescript-language-features 1.0.0



Great, thanks a lot @anar-ibragimoff !! :person_bowing:

Seems like Java extension is installed :thinking: Could you please share verbose output from SonarQube for IDE logs, and a screenshot of Windsurf developer tools console ?

It might be that the Java extension was not properly activated for some reason. Did the issue start appearing recently?

Thanks in advance,
Sophio

sonarlogs.txt (6.0 MB)

It might be that the Java extension was not properly activated for some reason. Did the issue start appearing recently?

As wrote earlier: Java extension works fine unless I activate SonarQube extension and restart IDE.

If I activate SonarQube on already running and initialized Windsurf - it also works just fine.

But problems start when I start IDE with previously activated SonarQube.

Same problem I had back in January, when was using another computer with another version of Windows and was using VSCode as IDE, and earlier version of SonarQube. Didn’t find proper solution back then, so was deactivating the extension most of the time.

Note: it’s a gradle-based project, if it matters.

Thanks for the additional details @anar-ibragimoff :person_bowing:

This is very strange and for the moment I cannot reproduce (tried on a Gradle project with Java and SonarQube for IDE extensions installed, and the issues are detected).

Maybe when you start the IDE, if you have a Java file open right away, SonarQube tries to trigger analysis but the Java extension is not initialized yet at that point? Would you be able to share a screenshot of how long was taken by Java extension activation? (141ms in my screenshot) and the SonarQube for IDE activation? And finally, if you could also provide an example file that triggers the failures, it would be a great help!! :folded_hands:

In the meantime, I will also try to reproduce the issue on a Windows machine.

All the best,
Sophio

Update:

I reproduced an issue on a Windows machine (not consistently though). It happened while SonarQube analysis was started before Java project was loaded in the IDE :thinking: BUT, importantly, even though I had the error logs in the output, once the project was loaded, the analysis results still appeared (see screenshot). Do you observe the same? Or are issues never coming up?

Sophio

Steps:

  1. Windsurf with installed BUT DEACTIVATED SonarQube

  2. Start Windsurf, open Workspace with 2 Gradle-based Java modules. Wait till workspace is fully initialized. Close all editors.

  3. Activate SonarQube extension. Extension is loaded within 268ms. CPU usage pikes for a minute. After a minute, project get analyzed, CPU drops downs to 0, analysis results is displayed on SonarQube tab. (see screenshot)

  4. Exit Winsurf. Wait for couple minutes, to make sure no java.exe processes left running (checked in processes view).

  5. Start Windsurf. Java extension gets initialized within 291ms, SonarQube within 489ms. But CPU usage raises to 100%, SonarQube logs gets filled with Timeout and Thread limit exceptions. No problem analysis results available. This state is now forever. The only option is available - deactivate extension and restart IDE.

This particular workspace contains 472 java-files in 2 modules, total size of java-sources 1.3Mb.

But same issue experiencing with all workspaces I have (like 30 different workspaces. some bigger, some smaller).

1 Like

Hi @anar-ibragimoff ,

Sorry for the delay. We have not forgotten about you :smiley:

I’ve been trying to reproduce the issue but with no success. i.e. I have this - similar error as you with timeout, but once the Java extension is loaded, SonarQube for IDE also recovers and starts analyzing Java files.

I will try to install exactly the same set of extensions as you have and see if something changes.

All the best,
Sophio

1 Like

Interesting observation:

I’ve updated my ‘vanilla’ VSCode (original, from Microsoft, not using for several months already, as migrated to Windsurf), and it seems they have tuned something. Now I’m not getting any exceptions on SonarQube initialization on startup of VSCode.

Here is actual version of VSCode:

Version: 1.105.1 (user setup)
Commit: 7d842fb85a0275a4a8e4d7e040d2625abbf7f084
Date: 2025-10-14T22:33:36.618Z
Electron: 37.6.0
ElectronBuildId: 12502201
Chromium: 138.0.7204.251
Node.js: 22.19.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

And here is the latest version of Windsurf, where the problem still exists:

Windsurf Version: 1.12.28
Windsurf Extension Version: 1.48.2
Windsurf Commit: c855b1fa42fce019aedb4b06e6faa69d65ac7fd3
VSCode OSS Version: 1.105.0 (user setup)
Commit: c855b1fa42fce019aedb4b06e6faa69d65ac7fd3
Date: 2025-11-04T01:10:44.597Z
Electron: 37.6.0
ElectronBuildId: undefined
Chromium: 138.0.7204.251
Node.js: 22.19.0
V8: 13.8.258.32-electron.0
OS: Windows_NT x64 10.0.26200

VSCode OSS Version is one minor version behind, but I didn’t find in changes anything significant. May be i’ve overseen it. Or it’s caused by some default parameters, which are not perfectly fine tuned in Windsurf.

1 Like

Thanks for the info! :person_bowing:

When you migrated to Windsurf, did you use their automatic migration feature? i.e. one that directly moves your VSCode config to Windsurf? Or you started on Windsurf from scratch?

When you migrated to Windsurf, did you use their automatic migration feature? i.e. one that directly moves your VSCode config to Windsurf? Or you started on Windsurf from scratch?

I tried both: migration and clean install (first tried to delete profiles and recreate them from scratch, but then clean install).

Also, yesterday, when realized VSCode works now, I also synchronized my user settings.json, to make sure all JVM settings are same in both IDE’s. But seems nothing from custom settings affects on why VSCode is fine, but Windsurf fails. Either some defaults are different, or internal IDE params (or 105.1 fixes something).