[Cbc-tickets] Re: [COIN-OR Branch-and-Cut MIP Solver] #30: "cbc -miplib" invalid null pointer error

COIN-OR Branch-and-Cut MIP Solver coin-trac at coin-or.org
Sat Aug 11 09:54:22 EDT 2007


#30: "cbc -miplib" invalid null pointer error
-------------------------+--------------------------------------------------
  Reporter:  jpfasano    |       Owner:  somebody
      Type:  defect      |      Status:  new     
  Priority:  major       |   Milestone:          
 Component:  component1  |     Version:          
Resolution:              |    Keywords:          
-------------------------+--------------------------------------------------
Old description:

> When running debug build of[[BR]]
> {{{
>    cbc -miplib
> }}}
> built from trunk on Aug 10 on Windows with MS Visual Studio V8 the code
> fails with a popup window with message
> {{{
>   Debug Assertion Failed
>   Program: File e:\microsoft visual studio 8\vc\include\algorithm Line
> 667
>   Expression: invalid pointer
> }}}
> The messages on the console are:
> {{{
>   processing mps file: gesa2 (15 out of 44)
> At line 17 NAME          GESA2
> At line 18 ROWS
> At line 1412 COLUMNS
> At line 4605 RHS
> At line 4738 BOUNDS
> At line 5459 ENDATA
> Problem GESA2 has 1392 rows, 1224 columns and 5064 elements
> Coin0008I GESA2 read with 0 errors
> Cgl0003I 0 fixed, 25 tightened bounds, 23 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 3 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
> substitutions
> Cgl0004I processed model has 1392 rows, 1224 columns (408 integer) and
> 5064 elements
> Clp0000I Optimal - objective value 2.54765e+007
> Cbc0038I Pass   1: obj.    1.89860 --> up =     0 , down =     0 -- rand
> =   10(  13)
> Cbc0038I Pass   2: obj.    0.00000 --> up =     0 , down =     0 -- rand
> =    0(  20)  - solution found of 2.60826e+007 - not improved by mini
> branch and bound
>
> Cbc0038I No solution found this major pass
> Cbc0038I Before mini branch and bound, 354 integers at bound fixed and
> 616 continuous
> Cbc0038I Mini branch and bound improved solution from 2.76675e+007 to
> 2.58124e+007 (18.50 seconds)
> Cbc0038I Freeing continuous variables gives a solution of 2.58124e+007
> Cbc0038I Round again with cutoff of 2.58124e+007
> Cbc0038I Pass   3: obj.    1.89860 --> up =     0 , down =     0 -- rand
> =   10(  13)
> Cbc0038I Pass   4: obj.    0.00000 --> up =     0 , down =     0 -- rand
> =    0(  27)  - solution found of 2.58124e+007 - not improved by mini
> branch and bound
>
> Cbc0038I No solution found this major pass
> Cbc0038I Before mini branch and bound, 354 integers at bound fixed and
> 617 continuous
> Cbc0038I Mini branch and bound did not improve solution (21.18 seconds)
> Cbc0038I After 21.18 seconds - Feasibility pump exiting - took 14.82
> seconds
> Cbc0012I Integer solution of 2.58124e+007 found by feasibility pump after
> 0 iterations and 0 nodes (21.20 seconds)
> }}}
> The call stack is
> {{{
> cbcSolve.exe!std::_Debug_message(const wchar_t * message=0x007e2454,
> const wchar_t * file=0x007e2678, unsigned int line=667)  Line 24   C++
> cbcSolve.exe!std::_Debug_pointer<double>(double * _First=0x00000000,
> const wchar_t * _File=0x007e2678, unsigned int _Line=667)  Line 1379 +
> 0x12 bytes  C++
> cbcSolve.exe!std::_Transform<double *,double
> *,std::negate<double>,std::forward_iterator_tag>(double *
> _First=0x00000000, double * _Last=0x00000000, double * _Dest=0x00000000,
> std::negate<double> _Func={...}, std::forward_iterator_tag
> __formal={...}, std::forward_iterator_tag __formal={...})  Line 667 +
> 0x13 bytes     C++
> cbcSolve.exe!std::_Transform<double *,double *,std::negate<double>
> >(double * _First=0x00000000, double * _Last=0x00000000, double *
> _Dest=0x00000000, std::negate<double> _Func={...},
> std::random_access_iterator_tag __formal={...},
> std::random_access_iterator_tag __formal={...})  Line 683 + 0x34 bytes
> C++
> cbcSolve.exe!std::transform<double *,double *,std::negate<double>
> >(double * _First=0x00000000, double * _Last=0x00000000, double *
> _Dest=0x00000000, std::negate<double> _Func={...})  Line 712 + 0x50 bytes
> C++
> cbcSolve.exe!CglKnapsackCover::deriveAKnapsack(const OsiSolverInterface &
> si={...}, OsiCuts & cs={...}, CoinPackedVector & krow={...}, bool
> treatAsLRow=false, double & b=1.7976931348623157e+308, int *
> complement=0x01661b70, double * xstar=0x012ed018, int rowIndex=408, int
> numberElements=0, const int * index=0x01250698, const double *
> element=0x01039f58)  Line 833 + 0x34 bytes      C++
> cbcSolve.exe!CglKnapsackCover::generateCuts(const OsiSolverInterface &
> si={...}, OsiCuts & cs={...}, CglTreeInfo info={...})  Line 417 + 0x4d
> bytes     C++
> cbcSolve.exe!CbcCutGenerator::generateCuts(OsiCuts & cs={...}, bool
> fullScan=true, OsiSolverInterface * solver=0x0092ece8, CbcNode *
> node=0x00000000)  Line 216 C++
> cbcSolve.exe!CbcModel::solveWithCuts(OsiCuts & cuts={...}, int
> numberTries=99, CbcNode * node=0x00000000)  Line 4818 + 0x2f bytes
> C++
> cbcSolve.exe!CbcModel::branchAndBound(int doStatistics=0)  Line 1166 +
> 0x1b bytes       C++
> cbcSolve.exe!CbcClpUnitTest(const CbcModel & saveModel={...})  Line 2032
> C++
> cbcSolve.exe!main(int argc=2, const char * * argv=0x00333870)  Line 226 +
> 0xc bytes     C++
> }}}

New description:

 When running debug build of[[BR]]
 {{{
    cbc -miplib
 }}}
 built from trunk on Aug 10 on Windows with MS Visual Studio V8 the code
 fails with a popup window with message
 {{{
   Debug Assertion Failed
   Program: File e:\microsoft visual studio 8\vc\include\algorithm Line 667
   Expression: invalid pointer
 }}}
 The messages on the console are:
 {{{
   processing mps file: gesa2 (15 out of 44)
 At line 17 NAME          GESA2
 At line 18 ROWS
 At line 1412 COLUMNS
 At line 4605 RHS
 At line 4738 BOUNDS
 At line 5459 ENDATA
 Problem GESA2 has 1392 rows, 1224 columns and 5064 elements
 Coin0008I GESA2 read with 0 errors
 Cgl0003I 0 fixed, 25 tightened bounds, 23 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 3 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0003I 0 fixed, 0 tightened bounds, 11 strengthened rows, 0
 substitutions
 Cgl0004I processed model has 1392 rows, 1224 columns (408 integer) and
 5064 elements
 Clp0000I Optimal - objective value 2.54765e+007
 Cbc0038I Pass   1: obj.    1.89860 --> up =     0 , down =     0 -- rand =
 10(  13)
 Cbc0038I Pass   2: obj.    0.00000 --> up =     0 , down =     0 -- rand =
 0(  20)  - solution found of 2.60826e+007 - not improved by mini branch
 and bound

 Cbc0038I No solution found this major pass
 Cbc0038I Before mini branch and bound, 354 integers at bound fixed and 616
 continuous
 Cbc0038I Mini branch and bound improved solution from 2.76675e+007 to
 2.58124e+007 (18.50 seconds)
 Cbc0038I Freeing continuous variables gives a solution of 2.58124e+007
 Cbc0038I Round again with cutoff of 2.58124e+007
 Cbc0038I Pass   3: obj.    1.89860 --> up =     0 , down =     0 -- rand =
 10(  13)
 Cbc0038I Pass   4: obj.    0.00000 --> up =     0 , down =     0 -- rand =
 0(  27)  - solution found of 2.58124e+007 - not improved by mini branch
 and bound

 Cbc0038I No solution found this major pass
 Cbc0038I Before mini branch and bound, 354 integers at bound fixed and 617
 continuous
 Cbc0038I Mini branch and bound did not improve solution (21.18 seconds)
 Cbc0038I After 21.18 seconds - Feasibility pump exiting - took 14.82
 seconds
 Cbc0012I Integer solution of 2.58124e+007 found by feasibility pump after
 0 iterations and 0 nodes (21.20 seconds)
 }}}
 The call stack is
 {{{
 cbcSolve.exe!std::_Debug_message(const wchar_t * message=0x007e2454, const
 wchar_t * file=0x007e2678, unsigned int line=667)  Line 24   C++
 cbcSolve.exe!std::_Debug_pointer<double>(double * _First=0x00000000, const
 wchar_t * _File=0x007e2678, unsigned int _Line=667)  Line 1379 + 0x12
 bytes  C++
 cbcSolve.exe!std::_Transform<double *,double
 *,std::negate<double>,std::forward_iterator_tag>(double *
 _First=0x00000000, double * _Last=0x00000000, double * _Dest=0x00000000,
 std::negate<double> _Func={...}, std::forward_iterator_tag __formal={...},
 std::forward_iterator_tag __formal={...})  Line 667 + 0x13 bytes     C++
 cbcSolve.exe!std::_Transform<double *,double *,std::negate<double>
 >(double * _First=0x00000000, double * _Last=0x00000000, double *
 _Dest=0x00000000, std::negate<double> _Func={...},
 std::random_access_iterator_tag __formal={...},
 std::random_access_iterator_tag __formal={...})  Line 683 + 0x34 bytes
 C++
 cbcSolve.exe!std::transform<double *,double *,std::negate<double> >(double
 * _First=0x00000000, double * _Last=0x00000000, double * _Dest=0x00000000,
 std::negate<double> _Func={...})  Line 712 + 0x50 bytes   C++
 cbcSolve.exe!CglKnapsackCover::deriveAKnapsack(const OsiSolverInterface &
 si={...}, OsiCuts & cs={...}, CoinPackedVector & krow={...}, bool
 treatAsLRow=false, double & b=1.7976931348623157e+308, int *
 complement=0x01661b70, double * xstar=0x012ed018, int rowIndex=408, int
 numberElements=0, const int * index=0x01250698, const double *
 element=0x01039f58)  Line 833 + 0x34 bytes      C++
 cbcSolve.exe!CglKnapsackCover::generateCuts(const OsiSolverInterface &
 si={...}, OsiCuts & cs={...}, CglTreeInfo info={...})  Line 417 + 0x4d
 bytes     C++
 cbcSolve.exe!CbcCutGenerator::generateCuts(OsiCuts & cs={...}, bool
 fullScan=true, OsiSolverInterface * solver=0x0092ece8, CbcNode *
 node=0x00000000)  Line 216 C++
 cbcSolve.exe!CbcModel::solveWithCuts(OsiCuts & cuts={...}, int
 numberTries=99, CbcNode * node=0x00000000)  Line 4818 + 0x2f bytes
 C++
 cbcSolve.exe!CbcModel::branchAndBound(int doStatistics=0)  Line 1166 +
 0x1b bytes       C++
 cbcSolve.exe!CbcClpUnitTest(const CbcModel & saveModel={...})  Line 2032
 C++
 cbcSolve.exe!main(int argc=2, const char * * argv=0x00333870)  Line 226 +
 0xc bytes     C++
 }}}
 [[BR]]
 [[BR]]
 The null pointer error is occurring on line 830 of !CglKnapsackCover.cpp
 {{{
 std::transform(leMatrixRow.getElements(),
                leMatrixRow.getElements() + leMatrixRow.getNumElements(),
                leMatrixRow.getElements(),
                std::negate<double>());
 }}}
 leMatrixRow has private members indices_ and elements_ which are null.
 These members were set to null on line 819
 {{{
 CoinPackedVector leMatrixRow(numberElements,index,element);
 }}}
 because numberElements is zero.

-- 
Ticket URL: <https://projects.coin-or.org/Cbc/ticket/30#comment:1>
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