[Clp-tickets] [COIN-OR Linear Programming Solver] #86: Index range error (underrun) in ClpPrimalColumnSteepest::partialPricing (tested with Clp-1.16.11)

COIN-OR Linear Programming Solver coin-trac at coin-or.org
Tue Feb 19 06:30:48 EST 2019


#86: Index range error (underrun) in ClpPrimalColumnSteepest::partialPricing
(tested with Clp-1.16.11)
------------------------+----------------------
 Reporter:  jhusr       |      Owner:  somebody
     Type:  defect      |     Status:  new
 Priority:  major       |  Milestone:
Component:  component1  |    Version:
 Keywords:              |
------------------------+----------------------
 In ClpPrimalColumnSteepest::partialPricing we find following declarations:

 double * duals = model_->dualRowSolution(); // array size of
 ClpModel::dual_ is ClpModel::numberRows_
 double * duals2 = duals - numberColumns.

 If ClpModel::dual_ is accessed using duals2[iSequence] resp. duals
 [bestSequence-numberColumns]
 an index underrun error occurs when the indices iSequence resp.
 bestSequence have a
 value < numberColumns.
 This can be verified using the macro _ASSERT_DUAL_ROW_SOL_PTR_(x) in the
 modified source code attached.

 Use Visual Studio, debug configuration:
 The underrun checks have been implemented in ClpPrimalColumnSteepest.cpp,
 look for "DUAL_ROW_SOLUTION_UNDERRUN_CHECK".

 Test condition:
 Force switchType = 5 manually in ClpPrimalColumnSteepest::pivotColumn
 (done in modified source, which is attached).

 Try e.g. P0033, or netlib example PEROLD.

--
Ticket URL: <https://projects.coin-or.org/Clp/ticket/86>
COIN-OR Linear Programming Solver <http://projects.coin-or.org/Clp>
A linear programming solver.



More information about the Clp-tickets mailing list