We have a C# project that is timing out when SonarCloud analysis it run on it. Our Azure DevOps pipeline runs a full clean build with SonarCloud analysis on a nightly basis. Since around 7th October one of the projects hangs on the the msbuild step if we have Sonar analysis turned on. It appears to hang on the build step for 40+ minutes before carrying on without error, however the build will fail later after 3 hours when it times out. Without SonarCloud analysis the step takes around 30 seconds.
I’ve rolled the code back to when the analysis was working and the issue persisted leading me to think that we hadn’t introduced an issue in the code. After that I reviewed the rules which have been added since our last working analysis but after removing them I’m still seeing the issue. I have also added the parameters “/p:reportanalyzer=true /v:d > build.log” to msbuild however I’m not seeing the same logs with timings as mentioned in other post on this forum.
I’ve narrowed it down and the issue is being caused by
csharpsquid:S1854
While I have deactivated the rule for now we would like to keep our rule set as SonarWay, could you investigate why it is causing our build to hang please
To reproduce I run our pipeline with the rule activated and it occurs every time that the services project builds. I have the FilesToAnalyze.txt from where it hangs.
We need to find the code where the time is spent. FilesToAnalyze.txt won’t help here. That one is fully generated before the analysis starts.
Can you use Quality Profile with that rule enabled, disable it with .editorconfig. And then enable it with .editorconfig only for one single directory at a time? Then repeat the same for files in that directory to narrow it down.
It will take quite a bit of time to do what you suggest as it’s about 30 mins into the build process when it hangs. Is there logging I can enable to see how long each rule is taking and where the time is being spent? This could narrow down the over head on my side.
You can set ReportAnalyzer and verbose build log to see how long time each rule takes. See this guide for more details:
As we know that there’s a single rule that causes troubles, you can disable all other rules to save build time.
You can also disable the analysis for each project that doesn’t hang.
The build should be as fast as your build without analysis in case the rule is not causing troubles in that specific test run directory.