-
Notifications
You must be signed in to change notification settings - Fork 398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
assertion is hit in SimpSolver::relocAll #3
Comments
I am bit by this right now. Here's a small example triggering the assertion.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Consider the following sequence of calls:
SimpSolver::eliminate calls
Solver::simplify, which calls
Solver::removeSatisfied (which eliminates many clauses, as the solver is used incrementally, and those clauses were deleted) and then
Solver::checkGarbage, which decides to relocate memory and calls (virtually)
SimpSolver::garbageCollect which calls
SimpSolver::relocAll
Now, the following assertion in SimpSolver::relocAll is hit:
assert(subsumption_queue.size() == 0);
(because some clauses were incrementally added, and
SimpSolver::addClause_ inserts things into subsumption_queue).
Note that this scenario might be difficult to reproduce, as Solver::checkGarbage rarely calls garbageCollect, and when it does, it's usually deep in the search rather than optimisation.
The text was updated successfully, but these errors were encountered: