[zypp-devel] dq.count <= 1
Hi, I am running into a problem where the satsolver is triggering an abort call in assert(dq.count > 1) in run_solver(). The comment above the call doesn't explain it: /* dq.count < 2 cannot happen as this means that * the rule is unit */ What does a dq.count <= 1 mean, and what does that comment mean? Thanks, Matt -- Matt Barringer, Software Engineer SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) http://susestudio.com http://www.novell.com/linux
On Sun, Dec 21, 2008 at 10:56:57AM +0100, Matt Barringer wrote:
I am running into a problem where the satsolver is triggering an abort call in assert(dq.count > 1) in run_solver(). The comment above the call doesn't explain it:
/* dq.count < 2 cannot happen as this means that * the rule is unit */
What does a dq.count <= 1 mean, and what does that comment mean?
"dq" is a queue containing unresolved literals. dq.count is the number of elements on this queue. A rule is "unit" if all literals but one are False, and the last literal is undecided (see SAT solver theory). All "unit" rule should already be handled in the propagate() step, so they shouldn't turn up here. Please change the debug level so that the output includes SAT_DEBUG_PROPAGATE. The solver code will then dump the rule before aborting. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
On Mon, 22 Dec 2008, Michael Schroeder wrote:
Please change the debug level so that the output includes SAT_DEBUG_PROPAGATE. The solver code will then dump the rule before aborting.
The last entry before aborting is: ----- propagate end----- unfulfilled Rule #742: !pattern:base-11.1-71.1.i586 [41169] (w1) Install.level1 grub-gfxboot-0.97-0.pm.1.i586 [8015] Conflict.level1 grub-0.97-156.3.i586 [28910] (w2) next rules: 743 0 Thanks, Matt -- Matt Barringer, Software Engineer SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) http://susestudio.com http://www.novell.com/linux
On Mon, Dec 22, 2008 at 01:49:29PM +0100, Matt Barringer wrote:
On Mon, 22 Dec 2008, Michael Schroeder wrote:
Please change the debug level so that the output includes SAT_DEBUG_PROPAGATE. The solver code will then dump the rule before aborting.
The last entry before aborting is:
----- propagate end----- unfulfilled Rule #742: !pattern:base-11.1-71.1.i586 [41169] (w1) Install.level1 grub-gfxboot-0.97-0.pm.1.i586 [8015] Conflict.level1 grub-0.97-156.3.i586 [28910] (w2) next rules: 743 0
Yep, as you can see the pattern is selected for installation and grub-gfxboot cannot be installed. The last propagation step should have selected grub for installation. Is there a way for me to reproduce this? Thanks, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
participants (2)
-
Matt Barringer
-
Michael Schroeder