Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR - Could not complete symbolic execution: reached limit of 10000 steps

Tags:

sonarqube

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?

like image 823
Ernesto Maserati Avatar asked Dec 03 '15 12:12

Ernesto Maserati


1 Answers

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.

like image 191
benzonico Avatar answered Nov 05 '22 06:11

benzonico