Please provide
- Operating system: Microsoft Windows 10 Pro (10.0.19045)
- SonarLint plugin version: 10.6.2.78685
- Programming language you’re coding in: Java
- Is connected mode used: Yes
- Connected to SonarCloud or SonarQube (and which version): SonarQube Version 9.9.1 (build 69595)
And a thorough description of the problem / question:
Noticed after a while of working in IntelliJ, that “SonarLint Analysis” tasks accumulate, and some appear to be stopping (but never actually stop).
Unfortunately, I have not discovered a pattern or specific actions that trigger this. It took me several hours of working for this to surface.
At this point, no analysis actually finished, which is a nuisance especially when pre-commit analysis is checked.
Uploaded are the thread dumps for SonarLintServerCli process, as well as one generated for IntelliJ. Note that the latter is stripped of Kotlin Coroutines, because this section contains sensitive data.
It appears that the SonarLintServerCli is waiting for file exclusions?
threadDump-20240628-131905.txt (297.2 KB)
sonarlintservercli.txt (130.0 KB)
Hey @indeterminatus, thanks for your report.
We just released SonarLint version 10.7, in which we modified some code related to this. It’s not sure that the issue will get fixed, but could you try and check if it’s any better?
In the meantime, I will try to investigate based on the valuable dumps you provided.
Thank you for the reply!
I just upgraded to the latest version. If the issue surfaces again, I will upload another set of dumps.
1 Like
It just happened again. My last interactions were SVN update, a few Maven commands, launching a node.js application via npm script, and launching java applications via launch configs.
Again, the Kotlin coroutines were discarded due to sensitive data. If they are required, I can clean them up/make sure nothing sensitive “escapes” and upload them. This exceeded my “just do it” threshold of required effort
.
Hope that helps. If there is something for me to try, just drop a note.
2024-07-03_sonarlintservercli_10.7.txt (143.6 KB)
threadDump-20240703-105826.txt (262.5 KB)
1 Like
Thanks, @indeterminatus, for your quick feedback. I may have identified a potential blocking point in our code, so I created this custom build for you to try.
You can follow this documentation to install a plugin from disk.
1 Like
Whoa, you’re fast. Updated plugin to 10.8.0.78887
I will report if I notice something. Can I provoke the block with a specific interaction?
Update: there are no more cancellations stacking up, but the analysis tasks now add up and appear to make no more progress.
I notice that for the last few times of locked situations, a task “Synchronizing projects…” is shown in the process list of IntelliJ (not sure where this comes from, just an observation).
Attached you find the latest dumps, taken with SonarLint plugin 10.8.0.78887.
I opened a few files in quick succession (“Automatic analysis” is enabled).
2024-07-03_sonarlintservercli_10.8.txt (124.4 KB)
threadDump-20240704-080200.txt (198.1 KB)
Can I provoke the block with a specific interaction?
I’m not sure; I can’t reproduce on my end. I believe something is blocking while the server sync is being done. Could you please share the SonarLint logs as well?
Do you have the same issue if you don’t use connected mode?
Is it also related to a specific project? Does it have a lot of modules, for instance, or is there anything worth mentioning?
I will try to provide the SonarLint logs, sure.
If I disable connected mode, it appears there is no problem, at least the issue never appeared in the past attempts.
The workspace I’m using contains two Maven multi-module projects, each with their own SonarQube binding (I need slightly different quality profiles / rule configurations for each). The bigger one has approximately 140 sub-modules, the smaller one has approximately 30 sub-modules.
On the SonarQube side, the only things I think are worthwhile mentioning is that the two projects have their own quality profile / quality gate, with slightly differing configurations, but they both are mostly “canon”, i.e., they are both based on the SonarQube’s default profile. The other thing is that I have a custom Java rule (own implementation).