Crash with Sonarlint in with extended timeout for large C++ projects

  • SonarLint 4.19.0.15817, Visual Studio 2019 16.4.0
  • subprocess.exe crashes

Steps

  • Change time out using by update environmental variable to 600000 (10 minutes) SONAR_INTERNAL_CFAMILY_ANALYSIS_TIMEOUT_MS to avoid timeouts (at 10 seconds by default)
  • Open visual studio
  • Configure Sonarlint to connect to SonarQube server
  • open file from small project (with small precompiled header contents) - this works - get list of errors in less than 1 minute
  • open file from large project (with large precompiled header contents) -> after a while I get crashes from subprocess.exe (might take 5-10 minutes to get crash)

Hello @magicmalcsiress,

Welcome to the community!

Do you reproduce the same crash when you analyze the same file on SonarQube?

We are working on sonarLint performance hopefully this is going to improve.

Thanks for your reply.

We are working on getting SonarQube fully integrated in our build pipeline (including for pull requests), and it is struggling with some of the files and projects. Some of the ones that failed on SonarLint we have got working on SonarQube, but sometimes it is running our of memory, so we are tweaking the heap size.

One of the ones that initially was failing on SonarLint (when trying to scan the current file) worked when SonarLint did a re-analysis of open files. But when did the re-analysis, I got about 3-4 instances of subprocess.exe crashing.

But also the performance is also a concern, so we are hoping for further improvements that are coming for both SonarLint and SonarQube.

@magicmalcsiress,

  • On SonarQube is the analysis of every file slow? or only specific ones that are taking an extremely long time that is impacting the overall time? If the latter you can you add the reproducer option to the scanner configuration:
    sonar.cfamily.reproducer= "Full path to the .cpp file that is taking a very long time"
    This should create a file named sonar-cfamily.reproducer in the project folder. This file will help me in debugging the issue and hopefully fix the issue.
  • are these consistent crashes? The fact that they succeeded before is worrisome. Did you change anything in the code between the two-run?

Hi @magicmalcsiress, just a heads up if you’re still using the environment variable SONAR_INTERNAL_CFAMILY_ANALYSIS_TIMEOUT_MS – please be advised that we’ve released SLVS 4.23 where we’ve renamed the variable. However, we’ve implemented numerous performance improvements, so the settings this environment variable should not be needed.