[Osi] [Clp] ABR in ClpSimplex:deleteRim using simplexInterface

Matthew Galati Matthew.Galati at sas.com
Thu Sep 10 12:56:14 EDT 2009


That won't be easy. I was hoping you could tell the logic flaw from the traceback. If not, I will try to put together some way to repeat independent - if I can even repeat it myself - but it's using windows and purify.

From: John J Forrest [mailto:jjforre at us.ibm.com]
Sent: Thursday, September 10, 2009 12:50 PM
To: Matthew Galati
Cc: clp at list.coin-or.org; clp-bounces at list.coin-or.org; osi at list.coin-or.org
Subject: Re: [Clp] ABR in ClpSimplex:deleteRim using simplexInterface


But how can I reproduce bug?

[cid:image001.gif at 01CA3216.13F87600]Matthew Galati ---09/10/2009 12:45:05 PM---https://projects.coin-or.org/Clp/ticket/33 [E] ABR: Array bounds read in ClpSimplex::deleteRim(int)

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/1e9bde72/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.gif
Type: image/gif
Size: 105 bytes
Desc: image001.gif
URL: <http://list.coin-or.org/pipermail/osi/attachments/20090910/1e9bde72/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 168 bytes
Desc: image002.png
URL: <http://list.coin-or.org/pipermail/osi/attachments/20090910/1e9bde72/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.png
Type: image/png
Size: 166 bytes
Desc: image003.png
URL: <http://list.coin-or.org/pipermail/osi/attachments/20090910/1e9bde72/attachment-0001.png>


More information about the Osi mailing list