Open hmijail opened 2 months ago
The z3 issue seems to not be considered a bug. Some changes were seemingly made, but the new version still keeps running for a long time at high CPU usage even if seemingly it's only cleaning-up.
I asked if I can just kill z3 at that point, but got no answer.
I have written my own dafny wrapper that detects leaked z3 after dafny exits, and kills them. However, that only works on the last iteration of dafny measure-complexity
. I have seen non-last iterations running for strangely long times, longer than the resource limit would suggest; is it possible that in those cases dafny is waiting for z3 to die, making the verification unnecessarily slow / resource-heavy?
Another possibility is that dafny doesn't wait, but still a leaked z3 in iteration N makes iteration N+{1,2,...} much slower.
Dafny version
4.7
Code to produce this issue
Command to run and resulting output
What happened?
Dafny finishes execution as expected.
However, one z3 process keeps running for a while with high CPU load. This is probably a z3 bug (reported here); but still, I wonder if it's something that Dafny should notice or guard against? It looks like currently it doesn't, and the leaked, CPU-consuming z3 process makes next dafny executions look unexplainably slow/resource-heavy, in a way that it's impossible to understand for the unsuspecting user.
(For example, for a good while I thought that those leaked z3 processes were actually in use by VSCode's Dafny server).
(Additionally: if z3 outputs an answer but keeps running, does that mean that the output was actually somehow unfinished? Should dafny react to that?)
What type of operating system are you experiencing the problem on?
Mac