[Cbc-tickets] [COIN-OR Branch-and-Cut MIP Solver] #121: Problem in CoinFactorization::pivotOneOtherRow when adding a constraint that contains a variable more than once

COIN-OR Branch-and-Cut MIP Solver coin-trac at coin-or.org
Tue Dec 6 12:49:15 EST 2011


#121: Problem in CoinFactorization::pivotOneOtherRow when adding a constraint
that contains a variable more than once
-------------------+--------------------------------------------------------
Reporter:  falk    |       Owner:  tkr
    Type:  defect  |      Status:  new
Priority:  major   |   Component:  Cbc
 Version:  trunk   |    Keywords:     
-------------------+--------------------------------------------------------
 (I posted this on the mailing list before)

 {{{
 $ cat test.cc
 #include <coin/OsiClpSolverInterface.hpp>
 #include <coin/CbcModel.hpp>

 int main() {
   CbcModel model = CbcModel(OsiClpSolverInterface());
   model.solver()->readLp("/dev/stdin");
   model.branchAndBound();
   return 0;
 }


 $ cat crash3.lp
 \Problem name:

 Minimize
 obj: - x0
 Subject To
 cons0:  x0 + x0 <= 1
 cons1:  x1 <= 1
 Bounds
 End


 $ g++ -g -O3 -W -Wall -I /home/hueffner/opt/cbc-2.7/include test.cc
 -L/home/hueffner/opt/cbc-2.7/lib -lCbc -lCbcSolver -lCgl -lClp -lCoinUtils
 -lOsiClp -lOsi -lz -lrt && ./a.out < crash3.lp
 Cbc3007W No integer variables - nothing to do
 Clp0006I 0  Obj 0 Dual inf 0.9999999 (1)
 Clp0006I 0  Obj 0 Dual inf 0.9999999 (1)
 zsh: segmentation fault  ./a.out < crash3.lp

 This is with cbc 2.7 from svn. The segfault sometimes disappears
 depending on surrounding code. valgrind reports an invalid read in
 CoinFactorization::pivotOneOtherRow. With 2.5.0, I get:

 Cbc3007W No integer variables - nothing to do
 Clp0006I 0  Obj 0 Dual inf 1 (1)
 a.out: CoinFactorization1.cpp:2108: bool
 CoinFactorization::pivotOneOtherRow(int, int): Assertion `where < end'
 failed.
 zsh: abort      ./a.out < crash3.lp
 }}}

 Maybe this is not a valid .lp file, but cbc probably shouldn't crash.

-- 
Ticket URL: <https://projects.coin-or.org/Cbc/ticket/121>
COIN-OR Branch-and-Cut MIP Solver <http://projects.coin-or.org/Cbc>
An LP-based branch-and-cut MIP solver.



More information about the Cbc-tickets mailing list