Skip to content
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

scip crashes with Assertion SCIPsetIsFeasLE(set, var->locdom.ub, var->glbdom.ub) failed #127

Open
zxt5 opened this issue Feb 13, 2025 · 2 comments

Comments

@zxt5
Copy link

zxt5 commented Feb 13, 2025

scip crashes on seed.lp.txt

root@b9f8d0525121:/tmp# scip -f seed.lp
SCIP version 10.0.0 [precision: 8 byte] [memory: block] [mode: debug] [LP solver: Soplex 8.0.0] [GitHash: 6feaff31f8]
Copyright (c) 2002-2025 Zuse Institute Berlin (ZIB)

External libraries:
  Readline 8.0         GNU library for command line editing (gnu.org/s/readline)
  Soplex 8.0.0         Linear Programming Solver developed at Zuse Institute Berlin (soplex.zib.de) [GitHash: f1cf1fed]
  CppAD 20180000.0     Algorithmic Differentiation of C++ algorithms developed by B. Bell (github.com/coin-or/CppAD)
  ZLIB 1.2.11          General purpose compression library by J. Gailly and M. Adler (zlib.net)
  TinyCThread 1.2      small portable implementation of the C11 threads API (tinycthread.github.io)
  GMP 6.2.0            GNU Multiple Precision Arithmetic Library developed by T. Granlund (gmplib.org)
  AMPL/MP 4.0.0        AMPL .nl file reader library (github.com/ampl/mp)
  Nauty 2.8.8          Computing Graph Automorphism Groups by Brendan D. McKay (users.cecs.anu.edu.au/~bdm/nauty)
  sassy 1.1            Symmetry preprocessor by Markus Anders (github.com/markusa4/sassy)

reading user parameter file <scip.set>

read problem <seed-pulp.lp>
============

original problem has 7 variables (0 bin, 5 int, 0 impl, 2 cont) and 90 constraints

solve problem
=============

presolving:
   (0.0s) symmetry computation started: requiring (bin +, int +, cont +), (fixed: bin -, int -, cont -)
   (0.0s) no symmetry present (symcode time: 0.00)
presolving (1 rounds: 1 fast, 1 medium, 1 exhaustive):
 0 deleted vars, 0 deleted constraints, 0 added constraints, 0 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
 0 implications, 0 cliques
presolved problem has 7 variables (0 bin, 5 int, 0 impl, 2 cont) and 90 constraints
     90 constraints of type <linear>
Presolving Time: 0.01

 time | node  | left  |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr|  dualbound   | primalbound  |  gap   | compl.
  0.0s|     1 |     0 |    10 |     - |  1128k |   0 |   7 |  90 |  90 |   0 |  0 |   0 |   0 |-1.685658e+04 |      --      |    Inf | unknown
  0.1s|     1 |     0 |    12 |     - |  1228k |   0 |   7 |  90 |  92 |   2 |  1 |   0 |   0 |-1.683198e+04 |      --      |    Inf | unknown
  0.2s|     1 |     0 |    15 |     - |  1238k |   0 |   7 |  90 |  93 |   3 |  2 |   0 |   0 |-1.682025e+04 |      --      |    Inf | unknown
  0.3s|     1 |     0 |    16 |     - |  1248k |   0 |   7 |  90 |  94 |   4 |  3 |   0 |   0 |-1.681203e+04 |      --      |    Inf | unknown
r 0.3s|     1 |     0 |    16 |     - |shifting|   0 |   7 |  90 |  94 |   4 |  3 |   0 |   0 |-1.681203e+04 |-1.676138e+04 |   0.30%| unknown
  0.3s|     1 |     0 |    19 |     - |  1258k |   0 |   7 |  90 |  95 |   5 |  4 |   0 |   0 |-1.680819e+04 |-1.676138e+04 |   0.28%| unknown
r 0.3s|     1 |     0 |    19 |     - |randroun|   0 |   7 |  90 |  95 |   0 |  4 |   0 |   0 |-1.680819e+04 |-1.679198e+04 |   0.10%| unknown
  0.3s|     1 |     0 |    19 |     - |  1261k |   0 |   7 |  90 |  95 |   5 |  4 |   0 |   0 |-1.680819e+04 |-1.679198e+04 |   0.10%| unknown
  0.3s|     1 |     0 |    19 |     - |  1261k |   0 |   7 |  90 |  95 |   5 |  4 |   0 |   0 |-1.680819e+04 |-1.679198e+04 |   0.10%| unknown
  0.4s|     1 |     0 |    21 |     - |  1270k |   0 |   7 |  90 |  96 |   6 |  5 |   0 |   0 |-1.680598e+04 |-1.679198e+04 |   0.08%| unknown
r 0.4s|     1 |     0 |    21 |     - |randroun|   0 |   7 |  90 |  96 |   0 |  5 |   0 |   0 |-1.680598e+04 |-1.679399e+04 |   0.07%| unknown
  0.4s|     1 |     0 |    24 |     - |  1280k |   0 |   7 |  90 |  97 |   7 |  6 |   0 |   0 |-1.680353e+04 |-1.679399e+04 |   0.06%| unknown
  0.4s|     1 |     0 |    25 |     - |  1307k |   0 |   7 |  90 |  98 |   8 |  7 |   0 |   0 |-1.680263e+04 |-1.679399e+04 |   0.05%| unknown
  0.5s|     1 |     0 |    27 |     - |  1317k |   0 |   7 |  90 |  99 |   9 |  8 |   0 |   0 |-1.680171e+04 |-1.679399e+04 |   0.05%| unknown
  0.5s|     1 |     0 |    28 |     - |  1349k |   0 |   7 |  90 | 100 |  10 |  9 |   0 |   0 |-1.680108e+04 |-1.679399e+04 |   0.04%| unknown
 time | node  | left  |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr|  dualbound   | primalbound  |  gap   | compl.
  0.6s|     1 |     0 |    29 |     - |  1360k |   0 |   7 |  90 | 101 |  11 | 10 |   0 |   0 |-1.680073e+04 |-1.679399e+04 |   0.04%| unknown
  0.7s|     1 |     0 |    30 |     - |  1371k |   0 |   7 |  90 | 102 |  12 | 11 |   0 |   0 |-1.680063e+04 |-1.679399e+04 |   0.04%| unknown
  0.8s|     1 |     0 |    30 |     - |  1382k |   0 |   7 |  90 | 102 |  12 | 12 |   0 |   0 |-1.680063e+04 |-1.679399e+04 |   0.04%| unknown
d 0.8s|     1 |     0 |    39 |     - |conflict|   0 |   7 |  90 | 102 |   0 | 13 |   1 |   0 |-1.679985e+04 |-1.679573e+04 |   0.02%| unknown
(run 1, node 1) restarting after 1 global fixings of integer variables

(restart) converted 12 cuts from the global cut pool into linear constraints

presolving:
(round 1, fast)       1 del vars, 2 del conss, 0 add conss, 5 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
(round 2, fast)       1 del vars, 2 del conss, 0 add conss, 7 chg bounds, 0 chg sides, 0 chg coeffs, 0 upgd conss, 0 impls, 0 clqs
presolving (3 rounds: 3 fast, 1 medium, 1 exhaustive):
 1 deleted vars, 2 deleted constraints, 0 added constraints, 7 tightened bounds, 0 added holes, 0 changed sides, 0 changed coefficients
 0 implications, 0 cliques
presolved problem has 6 variables (0 bin, 4 int, 0 impl, 2 cont) and 100 constraints
    100 constraints of type <linear>
Presolving Time: 0.02
transformed 7/7 original solutions to the transformed problem space

 time | node  | left  |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr|  dualbound   | primalbound  |  gap   | compl.
  0.9s|     1 |     0 |    56 |     - |  1444k |   0 |   6 | 100 | 100 |   0 |  0 |   1 |   0 |-1.679985e+04 |-1.679573e+04 |   0.02%| unknown
  0.9s|     1 |     0 |    56 |     - |  1445k |   0 |   6 | 100 |  99 |   0 |  0 |   1 |   0 |-1.679985e+04 |-1.679573e+04 |   0.02%| unknown
  0.9s|     1 |     0 |    57 |     - |  1445k |   0 |   6 | 100 | 100 |   1 |  1 |   1 |   0 |-1.679879e+04 |-1.679573e+04 |   0.02%| unknown
  1.0s|     1 |     0 |    58 |     - |  1445k |   0 |   6 | 100 | 101 |   2 |  2 |   1 |   0 |-1.679840e+04 |-1.679573e+04 |   0.02%| unknown
  1.1s|     1 |     0 |    59 |     - |  1445k |   0 |   6 | 100 | 102 |   3 |  3 |   1 |   0 |-1.679750e+04 |-1.679573e+04 |   0.01%| unknown
  1.1s|     1 |     0 |    60 |     - |  1445k |   0 |   6 | 100 | 103 |   4 |  4 |   1 |   0 |-1.679731e+04 |-1.679573e+04 |   0.01%| unknown
  1.2s|     1 |     0 |    61 |     - |  1456k |   0 |   6 | 100 | 104 |   5 |  5 |   1 |   0 |-1.679684e+04 |-1.679573e+04 |   0.01%| unknown
  1.2s|     1 |     0 |    62 |     - |  1467k |   0 |   6 | 100 | 105 |   6 |  6 |   1 |   0 |-1.679673e+04 |-1.679573e+04 |   0.01%| unknown
  1.3s|     1 |     0 |    63 |     - |  1478k |   0 |   6 | 100 | 106 |   7 |  7 |   1 |   0 |-1.679646e+04 |-1.679573e+04 |   0.00%| unknown
  1.4s|     1 |     0 |    64 |     - |  1490k |   0 |   6 | 100 | 107 |   8 |  8 |   1 |   0 |-1.679640e+04 |-1.679573e+04 |   0.00%| unknown
  1.4s|     1 |     0 |    65 |     - |  1502k |   0 |   6 | 100 | 108 |   9 |  9 |   1 |   0 |-1.679626e+04 |-1.679573e+04 |   0.00%| unknown
  1.5s|     1 |     0 |    65 |     - |  1512k |   0 |   6 |  98 | 108 |   9 | 10 |   1 |   0 |-1.679626e+04 |-1.679573e+04 |   0.00%| unknown
scip: /tmp/scip/src/scip/var.c:6901: varProcessChgUbGlobal: Assertion `SCIPsetIsFeasLE(set, var->locdom.ub, var->glbdom.ub)' failed.
Aborted (core dumped)
@zxt5 zxt5 changed the title scip crashes with Assertion `SCIPsetIsFeasLE(set, var->locdom.ub, var->glbdom.ub)' failed scip crashes with Assertion SCIPsetIsFeasLE(set, var->locdom.ub, var->glbdom.ub) failed Feb 13, 2025
@ambros-gleixner
Copy link
Member

Sorry for the long wait. Can you run this in a debugger (e.g. gdb --args ...) and post the backtrace? Does it also happen on the v92-bugfix branch?

@DominikKamp
Copy link
Contributor

On v92-bugfix until 1ee0ee4

    frame #4: 0x0000000100de134c scip`varProcessChgUbGlobal(var=0x00000001178d4b98, blkmem=0x0000000117863000, set=0x0000000117865200, stat=0x00000001178aac00, lp=0x0000000103a17c80, branchcand=0x0000600003015f80, eventqueue=0x0000600000248bc0, cliquetable=0x000060000214cc30, newbound=65.635046922032728) at var.c:7063:4
    frame #5: 0x0000000100de1ad4 scip`varProcessChgUbGlobal(var=0x00000001178d4d68, blkmem=0x0000000117863000, set=0x0000000117865200, stat=0x00000001178aac00, lp=0x0000000103a17c80, branchcand=0x0000600003015f80, eventqueue=0x0000600000248bc0, cliquetable=0x000060000214cc30, newbound=123.37961399988197) at var.c:7146:13
    frame #6: 0x0000000100dc7e18 scip`SCIPvarChgUbGlobal(var=0x00000001178d4d68, blkmem=0x0000000117863000, set=0x0000000117865200, stat=0x00000001178aac00, lp=0x0000000103a17c80, branchcand=0x0000600003015f80, eventqueue=0x0000600000248bc0, cliquetable=0x000060000214cc30, newbound=123.37961399988197) at var.c:7402:7
    frame #7: 0x0000000100dc5624 scip`SCIPvarFix(var=0x00000001178d4d68, blkmem=0x0000000117863000, set=0x0000000117865200, stat=0x00000001178aac00, transprob=0x0000600003e14c00, origprob=0x0000600003e14000, primal=0x0000600002c29a00, tree=0x0000000103a1ea50, reopt=0x0000000000000000, lp=0x0000000103a17c80, branchcand=0x0000600003015f80, eventfilter=0x0000000117883000, eventqueue=0x0000600000248bc0, cliquetable=0x000060000214cc30, fixedval=123.37961399988197, infeasible=0x000000016fdfc604, fixed=0x000000016fdfc600) at var.c:3829:7
    frame #8: 0x0000000100ddb66c scip`SCIPvarMultiaggregate(var=0x00000001178d4d68, blkmem=0x0000000117863000, set=0x0000000117865200, stat=0x00000001178aac00, transprob=0x0000600003e14c00, origprob=0x0000600003e14000, primal=0x0000600002c29a00, tree=0x0000000103a1ea50, reopt=0x0000000000000000, lp=0x0000000103a17c80, cliquetable=0x000060000214cc30, branchcand=0x0000600003015f80, eventfilter=0x0000000117883000, eventqueue=0x0000600000248bc0, naggvars=0, aggvars=0x0000600001740440, scalars=0x0000600001740480, constant=123.37961399988197, infeasible=0x000000016fdfc604, aggregated=0x000000016fdfc600) at var.c:5609:10
    frame #9: 0x0000000100cde800 scip`SCIPmultiaggregateVar(scip=0x0000600003d0c000, var=0x00000001178d4d68, naggvars=0, aggvars=0x0000600001740440, scalars=0x0000600001740480, constant=123.37961399988197, infeasible=0x000000016fdfc604, aggregated=0x000000016fdfc600) at scip_var.c:8680:4
    frame #10: 0x00000001001c66b0 scip`dualPresolve(scip=0x0000600003d0c000, conshdlrdata=0x0000000103a0ae30, cons=0x00000001178d6470, cutoff=0x000000016fdfc944, nfixedvars=0x00000001178ab14c, naggrvars=0x00000001178ab150, ndelconss=0x00000001178ab160, nchgvartypes=0x00000001178ab154) at cons_linear.c:11021:10
    frame #11: 0x000000010019714c scip`consPresolLinear(scip=0x0000600003d0c000, conshdlr=0x0000000103a0b110, conss=0x0000000103a20d70, nconss=1, nrounds=11, presoltiming=4, nnewfixedvars=0, nnewaggrvars=1, nnewchgvartypes=0, nnewchgbds=3, nnewholes=0, nnewdelconss=1, nnewaddconss=0, nnewupgdconss=0, nnewchgcoefs=0, nnewchgsides=0, nfixedvars=0x00000001178ab14c, naggrvars=0x00000001178ab150, nchgvartypes=0x00000001178ab154, nchgbds=0x00000001178ab158, naddholes=0x00000001178ab15c, ndelconss=0x00000001178ab160, naddconss=0x00000001178ab164, nupgdconss=0x00000001178ab168, nchgcoefs=0x00000001178ab16c, nchgsides=0x00000001178ab170, result=0x000000016fdfce50) at cons_linear.c:16598:13
    frame #12: 0x00000001008fcd28 scip`SCIPconshdlrPresolve(conshdlr=0x0000000103a0b110, blkmem=0x0000000117863000, set=0x0000000117865200, stat=0x00000001178aac00, timing=4, nrounds=11, nfixedvars=0x00000001178ab14c, naggrvars=0x00000001178ab150, nchgvartypes=0x00000001178ab154, nchgbds=0x00000001178ab158, naddholes=0x00000001178ab15c, ndelconss=0x00000001178ab160, naddconss=0x00000001178ab164, nupgdconss=0x00000001178ab168, nchgcoefs=0x00000001178ab16c, nchgsides=0x00000001178ab170, result=0x000000016fdfce50) at cons.c:4087:10
    frame #13: 0x0000000100ca0dfc scip`presolveRound(scip=0x0000600003d0c000, timing=0x000000016fdfd0f4, unbounded=0x000000016fdfd1ec, infeasible=0x000000016fdfd1e8, lastround=0, presolstart=0x000000016fdfd0e4, presolend=16, propstart=0x000000016fdfd0e0, propend=9, consstart=0x000000016fdfd0dc, consend=29) at scip_solve.c:866:7
    frame #14: 0x0000000100c9333c scip`presolve(scip=0x0000600003d0c000, unbounded=0x000000016fdfd1ec, infeasible=0x000000016fdfd1e8, vanished=0x000000016fdfd1e4) at scip_solve.c:1250:7
    frame #15: 0x0000000100c91700 scip`SCIPpresolve(scip=0x0000600003d0c000) at scip_solve.c:2373:7
    frame #16: 0x0000000100513c2c scip`heurExecAlns(scip=0x0000600003d00000, heur=0x0000600003506470, heurtiming=44, nodeinfeasible=0, result=0x000000016fdfde44) at heur_alns.c:2620:17
    frame #17: 0x000000010098c67c scip`SCIPheurExec(heur=0x0000600003506470, set=0x000000010505c400, primal=0x0000600002c1c000, depth=0, lpstateforkdepth=-1, heurtiming=44, nodeinfeasible=0, ndelayedheurs=0x000000016fdfde2c, result=0x000000016fdfde44) at heur.c:1315:7
    frame #18: 0x0000000100d26bd4 scip`SCIPprimalHeuristics(set=0x000000010505c400, stat=0x0000000115808200, prob=0x0000600003e08b00, primal=0x0000600002c1c000, tree=0x0000000103806150, lp=0x0000000102f04080, nextnode=0x0000000000000000, heurtiming=44, nodeinfeasible=0, foundsol=0x000000016fdfe2ec, unbounded=0x000000016fdfe80c) at solve.c:367:7
    frame #19: 0x0000000100d32f10 scip`solveNode(blkmem=0x000000010505a200, set=0x000000010505c400, messagehdlr=0x00006000026045a0, stat=0x0000000115808200, mem=0x0000600000204120, origprob=0x0000600003e04000, transprob=0x0000600003e08b00, primal=0x0000600002c1c000, tree=0x0000000103806150, reopt=0x0000000000000000, lp=0x0000000102f04080, relaxation=0x0000600000230ce0, pricestore=0x00006000026e4240, sepastore=0x0000600001750000, branchcand=0x0000600003008000, cutpool=0x0000600002c28000, delayedcutpool=0x0000600002c28080, conflict=0x0000000103806ea0, conflictstore=0x00006000037027c0, eventfilter=0x000000010507b200, eventqueue=0x000060000022c000, cliquetable=0x000060000213c000, cutoff=0x000000016fdfe814, postpone=0x000000016fdfe810, unbounded=0x000000016fdfe80c, infeasible=0x000000016fdfe808, restart=0x000000016fdfeae8, afternodeheur=0x000000016fdfe7f4, stopped=0x000000016fdfe7f0) at solve.c:4340:13
    frame #20: 0x0000000100d2f668 scip`SCIPsolveCIP(blkmem=0x000000010505a200, set=0x000000010505c400, messagehdlr=0x00006000026045a0, stat=0x0000000115808200, mem=0x0000600000204120, origprob=0x0000600003e04000, transprob=0x0000600003e08b00, primal=0x0000600002c1c000, tree=0x0000000103806150, reopt=0x0000000000000000, lp=0x0000000102f04080, relaxation=0x0000600000230ce0, pricestore=0x00006000026e4240, sepastore=0x0000600001750000, cutpool=0x0000600002c28000, delayedcutpool=0x0000600002c28080, branchcand=0x0000600003008000, conflict=0x0000000103806ea0, conflictstore=0x00006000037027c0, eventfilter=0x000000010507b200, eventqueue=0x000060000022c000, cliquetable=0x000060000213c000, restart=0x000000016fdfeae8) at solve.c:5104:7
    frame #21: 0x0000000100c969b4 scip`SCIPsolve(scip=0x0000600003d00000) at scip_solve.c:2661:10
    frame #22: 0x00000001003a9874 scip`SCIPdialogExecOptimize(scip=0x0000600003d00000, dialog=0x00006000026067c0, dialoghdlr=0x0000600000c04db0, nextdialog=0x000000016fdfec20) at dialog_default.c:2194:7
    frame #23: 0x000000010095eff8 scip`SCIPdialogExec(dialog=0x00006000026067c0, set=0x000000010505c400, dialoghdlr=0x0000600000c04db0, nextdialog=0x000000016fdfec20) at dialog.c:951:4
    frame #24: 0x000000010095edf8 scip`SCIPdialoghdlrExec(dialoghdlr=0x0000600000c04db0, set=0x000000010505c400) at dialog.c:402:7
    frame #25: 0x0000000100c35de4 scip`SCIPstartInteraction(scip=0x0000600003d00000) at scip_dialog.c:252:4
    frame #26: 0x0000000100ceaacc scip`SCIPprocessShellArguments(scip=0x0000600003d00000, argc=7, argv=0x000000016fdff4f0, defaultsetname="scip.set") at scipshell.c:538:10
    frame #27: 0x0000000100cebd84 scip`SCIPrunShell(argc=7, argv=0x000000016fdff4f0, defaultsetname="scip.set") at scipshell.c:594:4
    frame #28: 0x00000001000060e8 scip`main(argc=7, argv=0x000000016fdff4f0) at main.c:71:14
    frame #29: 0x00000001a3957fd8 dyld`start + 2412

so there was a recent bugfix in dualPresolve() afterwards which worked around this issue but I do not expect that it has fixed it because it was a change from feasibility to epsilon tolerance but the failing assertion allows the feasibility tolerance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants