[Osi] [Clp] ABR in ClpSimplex:deleteRim using simplexInterface
John J Forrest
jjforre at us.ibm.com
Thu Sep 10 12:50:29 EDT 2009
But how can I reproduce bug?
From: Matthew Galati <Matthew.Galati at sas.com>
To: "clp at list.coin-or.org" <clp at list.coin-or.org>, "osi at list.coin-or.org" <osi at list.coin-or.org>
Date: 09/10/2009 12:45 PM
Subject: [Clp] ABR in ClpSimplex:deleteRim using simplexInterface
Sent by: clp-bounces at list.coin-or.org
https://projects.coin-or.org/Clp/ticket/33
[E] ABR: Array bounds read in ClpSimplex::deleteRim(int) {6 occurrences}
Reading 8 bytes from 0x03fb0cd0 (8 bytes at 0x03fb0cd0 illegal)
Address 0x03fb0cd0 is 1 byte past the end of a 520 byte block at
0x03fb0ac8
Address 0x03fb0cd0 points to a C++ new block in heap 0x03f70000
Thread ID: 0x1ae0
Error location
ClpSimplex::deleteRim(int) [c:\cygwin\home\magala\coin
\coin-decomp\clp\src\clpsimplex.cpp:4322]
reducedCost_[i] = reducedCostWork_[i];
}
for (i=0;i<numberRows;i++) {
=> double value = rowActivityWork_[i];
double lower = rowLowerWork_[i];
double upper = rowUpperWork_[i];
if (lower>-1.0e20||upper<1.0e20) {
ClpSimplex::finish(int) [c:\cygwin\home\magala\coin\coin-decomp
\clp\src\clpsimplex.cpp:8125]
} else {
whatsChanged_ &= ~0xffff;
}
=> deleteRim(getRidOfData);
// Skip message if changing algorithms
if (problemStatus_!=10) {
if (problemStatus_==-1)
OsiClpSolverInterface::disableSimplexInterface(void) [c:\cygwin
\home\magala\coin\coin-decomp\osi\src\osiclp
\osiclpsolverinterface.cpp:5331]
// message will not appear anyway
int saveMessageLevel=modelPtr_->messageHandler()->
logLevel();
modelPtr_->messageHandler()->setLogLevel(0);
=> modelPtr_->finish();
modelPtr_->messageHandler()->setLogLevel
(saveMessageLevel);
modelPtr_->restoreData(saveData_);
modelPtr_->scaling(saveData_.scalingFlag_);
OsiClpSolverInterface::resolve(void) [c:\cygwin\home\magala
\coin\coin-decomp\osi\src\osiclp\osiclpsolverinterface.cpp:851]
int saveSolveType=modelPtr_->solveType();
bool doingPrimal = modelPtr_->algorithm()>0;
if (saveSolveType==2) {
=> disableSimplexInterface();
}
int saveOptions = modelPtr_->specialOptions();
int startFinishOptions=0;
DecompAlgo::solutionUpdate(DecompPhase,int,int) [c:\cygwin\home
\magala\coin\coin-decomp\decomp\src\decompalgo.cpp:1846]
DecompAlgo::processNode(int,double,double) [c:\cygwin\home
\magala\coin\coin-decomp\decomp\src\decompalgo.cpp:1452]
AlpsDecompTreeNode::process(bool,bool) [c:\cygwin\home\magala
\coin\coin-decomp\decomp\src\alpsdecomptreenode.cpp:220]
AlpsSubTree::exploreUnitWork
(bool,int,double,AlpsExitStatus&,int&,int&,int&,int&,bool&) [c:\cygwin\home
\magala\coin\coin-decomp\alps\src\alpssubtree.cpp:1288]
AlpsSubTree::exploreSubTree(AlpsTreeNode
*,int,double,int&,int&,int&,int&) [c:\cygwin\home\magala\coin\coin-decomp
\alps\src\alpssubtree.cpp:495]
AlpsKnowledgeBrokerSerial::rootSearch(AlpsTreeNode *)
[c:\cygwin\home\magala\coin\coin-decomp\alps\src
\alpsknowledgebrokerserial.cpp:226]
Allocation location
new(UINT) [f:\dd\vctools\crt_bld\self_x86\crt\src
\new.cpp:57]
<>=(UINT) [f:\dd\vctools\crt_bld\self_x86\crt\src
\newaop.cpp:7]
ClpSimplex::createRim(int,bool,int) [c:\cygwin\home\magala\coin
\coin-decomp\clp\src\clpsimplex.cpp:3257]
delete [] dj_;
dj_ = new double[numberTotal];
delete [] solution_;
=> solution_ = new double[numberTotal];
}
reducedCostWork_ = dj_;
rowReducedCost_ = dj_+numberColumns_;
ClpSimplex::startup(int,int) [c:\cygwin\home\magala\coin
\coin-decomp\clp\src\clpsimplex.cpp:7962]
// put in standard form (and make row copy)
// create modifiable copies of model rim and do optional
scaling
=> bool goodMatrix=createRim(7+8+16
+32,true,startFinishOptions);
if (goodMatrix) {
// switch off factorization if bad
OsiClpSolverInterface::enableSimplexInterface(bool) [c:\cygwin
\home\magala\coin\coin-decomp\osi\src\osiclp
\osiclpsolverinterface.cpp:5312]
#ifdef NDEBUG
modelPtr_->startup(0);
#else
=> int returnCode=modelPtr_->startup(0);
assert (!returnCode||returnCode==2);
#endif
modelPtr_->specialOptions_=saveOptions;
OsiClpSolverInterface::resolve(void) [c:\cygwin\home\magala
\coin\coin-decomp\osi\src\osiclp\osiclpsolverinterface.cpp:1219]
DecompAlgo::solutionUpdate(DecompPhase,int,int) [c:\cygwin\home
\magala\coin\coin-decomp\decomp\src\decompalgo.cpp:1846]
DecompAlgo::processNode(int,double,double) [c:\cygwin\home
\magala\coin\coin-decomp\decomp\src\decompalgo.cpp:1191]
AlpsDecompTreeNode::process(bool,bool) [c:\cygwin\home\magala
\coin\coin-decomp\decomp\src\alpsdecomptreenode.cpp:220]
AlpsSubTree::exploreUnitWork
(bool,int,double,AlpsExitStatus&,int&,int&,int&,int&,bool&) [c:\cygwin\home
\magala\coin\coin-decomp\alps\src\alpssubtree.cpp:1288]
_______________________________________________
Clp mailing list
Clp at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/clp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/osi/attachments/20090910/f4d3ed99/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/osi/attachments/20090910/f4d3ed99/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/osi/attachments/20090910/f4d3ed99/attachment-0001.gif>
More information about the Osi
mailing list