[Coin-discuss] valgrind invalid free in ClpModel::returnModel

Matthew Galati magh at lehigh.edu
Tue May 27 11:46:58 EDT 2008


Hi - I am going to work on an independent driver that is repeatable to 
show the following issue -- but it might take some work.

In the mean time, does this valgrind trace tell anyone anything? So far 
I can't find anything wrong in how I build the model, but something goes 
wrong in ClpModel after an "initialSolve".

Thanks,
Matt




magh at shark:~/COIN/coin-Decomp/build-g/Decomp/examples/AP3$ valgrind 
--tool=memcheck --leak-check=yes ./alps_ap3 --param ap3.parm 
--AP3:Instance ap3.30.1 > t

==5409== Memcheck, a memory error detector.
==5409== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==5409== Using LibVEX rev 1804, a library for dynamic binary translation.
==5409== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==5409== Using valgrind-3.3.0-Debian, a dynamic binary instrumentation 
framework.
==5409== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==5409== For more details, rerun with: -v
==5409==
==5409== Invalid free() / delete / delete[]
==5409==    at 0x4023ECC: operator delete[](void*) (vg_replace_malloc.c:364)
==5409==    by 0x814E12D: ClpModel::returnModel(ClpModel&) 
(ClpModel.cpp:997)
==5409==    by 0x81AF071: ClpSimplex::returnModel(ClpSimplex&) 
(ClpSimplex.cpp:8033)
==5409==    by 0x8142462: OsiClpSolverInterface::initialSolve() 
(OsiClpSolverInterface.cpp:365)
==5409==    by 0x80646CE: DecompAlgo2::solutionUpdate(DecompPhase, int, 
int) (DecompAlgo2.cpp:856)
==5409==    by 0x806A34B: DecompAlgo2::phaseInit() (DecompAlgo2.cpp:460)
==5409==    by 0x806A7E2: DecompAlgo2::processNode(int, double, double) 
(DecompAlgo2.cpp:538)
==5409==    by 0x808EA00: AlpsDecompTreeNode::process(bool, bool) 
(AlpsDecompTreeNode.cpp:194)
==5409==    by 0x80A7110: AlpsSubTree::exploreUnitWork(bool, int, 
double, AlpsExitStatus&, int&, int&, bool&) 
(AlpsSubTree.cpp                                                                                       
:1209)
==5409==    by 0x80A7DBD: AlpsSubTree::exploreSubTree(AlpsTreeNode*, 
int, double, int&, int&) (AlpsSubTree.cpp:443)
==5409==    by 0x80AEBBB: 
AlpsKnowledgeBrokerSerial::rootSearch(AlpsTreeNode*) 
(AlpsKnowledgeBrokerSerial.cpp:224)
==5409==    by 0x808C1D7: AlpsKnowledgeBroker::search(AlpsModel*) 
(AlpsKnowledgeBroker.h:259)
==5409==  Address 0x7747958 is 0 bytes inside a block of size 27,090 free'd
==5409==    at 0x4023ECC: operator delete[](void*) (vg_replace_malloc.c:364)
==5409==    by 0x81A8AF8: ClpSimplex::moveInfo(ClpSimplex const&, bool) 
(ClpSimplex.cpp:9541)
==5409==    by 0x820F1EA: ClpSimplex::initialSolve(ClpSolve&) 
(ClpSolve.cpp:1802)
==5409==    by 0x8142329: OsiClpSolverInterface::initialSolve() 
(OsiClpSolverInterface.cpp:355)
==5409==    by 0x80646CE: DecompAlgo2::solutionUpdate(DecompPhase, int, 
int) (DecompAlgo2.cpp:856)
==5409==    by 0x806A34B: DecompAlgo2::phaseInit() (DecompAlgo2.cpp:460)
==5409==    by 0x806A7E2: DecompAlgo2::processNode(int, double, double) 
(DecompAlgo2.cpp:538)
==5409==    by 0x808EA00: AlpsDecompTreeNode::process(bool, bool) 
(AlpsDecompTreeNode.cpp:194)
==5409==    by 0x80A7110: AlpsSubTree::exploreUnitWork(bool, int, 
double, AlpsExitStatus&, int&, int&, bool&) 
(AlpsSubTree.cpp                                                                                       
:1209)
==5409==    by 0x80A7DBD: AlpsSubTree::exploreSubTree(AlpsTreeNode*, 
int, double, int&, int&) (AlpsSubTree.cpp:443)
==5409==    by 0x80AEBBB: 
AlpsKnowledgeBrokerSerial::rootSearch(AlpsTreeNode*) 
(AlpsKnowledgeBrokerSerial.cpp:224)
==5409==    by 0x808C1D7: AlpsKnowledgeBroker::search(AlpsModel*) 
(AlpsKnowledgeBroker.h:259)





More information about the Coin-discuss mailing list