With SonarQube 5.2 when I analyse the same project as I did with SonarQube 5.1.2 I see a lot of such error messages in the log when it analyzes Java sources:
ERROR - Could not complete symbolic execution: reached limit of 10000 steps for method updateAll in class DefaultTypeDefinitions
These error messages did not appear in former SonarQube 5.1.2 version.
However the analysis result seems to be okay for SonarQube 5.2 in the end.
But these error messages alarm me. I don't understand whats wrong. Can you please help to clarify it?
This error message is actually completely normal and expected when you run your analysis with sonar-java plugin 3.8
because of new symbolic execution engine introduced with this version.
(So in the end this should not be an error message but rather something visible only in debug mode : https://jira.sonarsource.com/browse/SONARJAVA-1406 this should be fixed in next release of java plugin).
This is harmless to your analysis.
What does it mean ?
For two rules (S2259
about nullpointer exceptions and S2583
about conditions always true or false) we use symbolic execution which explore all the possible states of a method to find issues. This ends up exploring a big graph of possible states (this is oversimplified here, but sufficient for explanation).
This exploration can be huge and as such there is an arbitrary limit to it : 10 000 steps. So when we cannot complete symbolic execution we log this message.
Concretely: this is a rather indirect way to warn you about some potential false negatives about those two rules on this method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With