Closed leventeBajczi closed 9 months ago
@csanadtelbisz: Sonar fails, because some tests ultimately fail. Relevant log:
Caused by:
2023-09-10T13:13:40.7201330Z java.lang.UnsupportedOperationException: Solver Z3 not supported
2023-09-10T13:13:40.7201918Z at hu.bme.mit.theta.solver.SolverManager.resolveSolverFactory(SolverManager.java:40)
2023-09-10T13:13:40.7202556Z at hu.bme.mit.theta.xcfa.passes.LoopUnrollPass.<clinit>(LoopUnrollPass.kt:46)
2023-09-10T13:13:40.7202939Z ... 5 more
Can you take a look if this has something to do with the moved registerSolverFactories method in XcfaCli? I think I saw some modifications there in your pr (#202). Let me know if I'm mistaken.
@leventeBajczi The solver issue arose due to the fact that LoopUnrollPass
invokes a solver (unprecedented in xcfa passes before). Tests did not register solvers. I added a dependency on Z3 and hardcoded the usage of Z3 in LoopUnrollPass
.
Also fixed bugs reported by sonarcloud.
A projection should be given in XcfaAnalysis.getXcfaAbstractor in order to avoid performance degradation compared to the original xcfa analysis, as the lack of non-trivial projection leads to a lot of unnecessary covering checks
The WebDebuggerLogger is always enabled and it is responsible for a considerable portion of runtime. See the following lines: https://github.com/ftsrg/theta/blob/c43d0a148d0d19bcf2e01ef2547336364a1e5d71/subprojects/common/analysis/src/main/java/hu/bme/mit/theta/analysis/algorithm/cegar/CegarChecker.java#L94-L97 As it serves only debugging purposes, it should be disabled by default. @AdamZsofi git blame shows that you are the author of this change.
The following profiler output confirms the problem. The WebDebuggerLogger takes ~1/3 (more than 10 seconds in this case) of all CPU time.
Wrong result is given for the unreach-call property on the following tasks in the eca-rers2012 category of sv-benchmarks:
Config 1: --strategy DIRECT --maxenum 1 --loglevel RESULT --refinement SEQ_ITP --lbe LBE_SEQ --search ERR --prunestrategy FULL --predsplit ATOMS --cex-monitor DISABLE --domain EXPL
Problem17_label11.yml
Config 2: --strategy DIRECT --maxenum 1 --loglevel RESULT --refinement SEQ_ITP --lbe LBE_SEQ --search ERR --prunestrategy FULL --predsplit ATOMS --cex-monitor DISABLE --domain PRED_CART
Problem10_label30.yml, Problem11_label40.yml, Problem15_label49.yml
Thanks for the review! I'll get around to incorporating its findings hopefully this weekend.
@AdamZsofi WebDebuggerLogger still has an overhead, see the following lines:
Time taken by these lines:
Thanks for telling me. Fixed, there should be no overhead now.
Issues
4687 New issues
Measures
0 Security Hotspots
60.7% Coverage on New Code
1.8% Duplication on New Code
Benchexec test report for a selection of SV-Benchmarks (correct / incorrect / all):
This PR merges the
xcfa-refactor
branch.Main features of the PR:
graph-solver
) to Thetalitmus-cli
for litmus test inputs