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

John J Forrest jjforre at us.ibm.com
Wed May 28 07:09:53 EDT 2008


Matt,

It is a bug.  It occurred when ClpSimplex::initialSolve was called through
OsiClp and presolve did not reduce the problem and an unusual strategy to
solve the Lp was used owing to the problem shape.

Should be fixed in trunk and stable/2.1

John


                                                                                                                           
  From:       Matthew Galati <magh at lehigh.edu>                                                                             
                                                                                                                           
  To:         "coin-discuss at list.coin-or.org" <coin-discuss at list.coin-or.org>                                              
                                                                                                                           
  Date:       05/27/2008 12:09 PM                                                                                          
                                                                                                                           
  Subject:    [Coin-discuss] valgrind invalid free in ClpModel::returnModel                                                
                                                                                                                           





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)


_______________________________________________
Coin-discuss mailing list
Coin-discuss at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/coin-discuss





More information about the Coin-discuss mailing list