Opened 2 months ago

Closed 7 weeks ago

#86 closed defect (migrated)

Index range error (underrun) in ClpPrimalColumnSteepest::partialPricing (tested with Clp-1.16.11)

Reported by: jhusr Owned by: somebody
Priority: major Milestone:
Component: component1 Version:
Keywords: Cc:

Description

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.

Change History (2)

comment:1 Changed 2 months ago by jhusr

Attaching the modified source file resulted in "TRAC IndexError?: pop from empty list". I try to send the modification by e-mail.

Last edited 2 months ago by jhusr (previous) (diff)

comment:2 Changed 7 weeks ago by stefan

  • Resolution set to migrated
  • Status changed from new to closed

This ticket has been migrated to GitHub and will be resolved there: ​https://github.com/coin-or/Clp/issues/86

Note: See TracTickets for help on using tickets.