[Osi-tickets] [COIN-OR Open Solver Interface] #108: OsiSolverGrbInterface assertion failed

COIN-OR Open Solver Interface coin-trac at coin-or.org
Thu Jan 9 05:32:23 EST 2014


#108: OsiSolverGrbInterface assertion failed
------------------------+-------------------
 Reporter:  Murilo.R.S  |      Owner:  mjs
     Type:  defect      |     Status:  new
 Priority:  major       |  Milestone:
Component:  OsiGrb      |    Version:  0.105
 Keywords:              |
------------------------+-------------------
 I am using the !OsiSolverGrbInterface and some unexpected things are
 happened.

 When I use the method deleteCols() and after that I use the method
 addCol(), I got

         Assertion failed: minsize == 0 !|| coltype_ != NULL,
         file [https://projects.coin-
 or.org/Osi/browser/trunk/Osi/src/OsiGrb/OsiGrbSolverInterface.cpp
 OsiSolverGrbInterface.cpp], line 187

 This is because minsize > 0 and coltype_ == NULL, which in turn is due to
 the fact that in

 OsiGrbSolverInterface::deleteCols(const int num, const int *
 columnIndices)

 at lines 2437 to 2441 the following piece of code
 {{{
 if( coltype_ )
 {
  delete[] coltype_;
  coltype_ = NULL;
 }
 }}}
 deletes it. Although I cannot be sure, it seems to me that code is wrong,
 as coltype_ should only be deleted when *the last column* is deleted,
 leaving an empty problem; however, this is not the case.

 Indeed, commenting out these lines the code works well in my application
 (as checked by comparing with !OsiCpx).

 I thought you may want to know. Maybe I'm wrong, and in this case I'd
 really appreciate if you could give me a hint about why the error may
 occur, but in the odd chance I'm right you may want to correct the issue.

 If you need further details about how the assert() is produced I'll be
 happy to provide them.

--
Ticket URL: <https://projects.coin-or.org/Osi/ticket/108>
COIN-OR Open Solver Interface <http://projects.coin-or.org/Osi>
An API for a variety of LP and MIP solvers (and more).



More information about the Osi-tickets mailing list