[Couenne] Bug in reformulation?

Francois Margot fmargot at andrew.cmu.edu
Sun May 29 05:03:24 EDT 2011


Running trunk on st_e32.nl, valgrind finds an error in the reformulation
before crashing. See below.

Francois

---------------------

==26003== Invalid read of size 8
==26003==    at 0x44FFA5:
Couenne::compExpr::operator()(Couenne::exprAux*, Couen
ne::exprAux*) const (CouenneExprAux.hpp:212)
==26003==    by 0x450AF8: std::_Rb_tree<Couenne::exprAux*,
Couenne::exprAux*, st
d::_Identity<Couenne::exprAux*>, Couenne::compExpr,
std::allocator<Couenne::expr
Aux*> >::_M_lower_bound(std::_Rb_tree_node<Couenne::exprAux*>*,
std::_Rb_tree_no
de<Couenne::exprAux*>*, Couenne::exprAux* const&) (stl_tree.h:1004)
==26003==    by 0x4503A9: std::_Rb_tree<Couenne::exprAux*,
Couenne::exprAux*, st
d::_Identity<Couenne::exprAux*>, Couenne::compExpr,
std::allocator<Couenne::expr
Aux*> >::find(Couenne::exprAux* const&) (stl_tree.h:1519)
==26003==    by 0x4501F0: std::set<Couenne::exprAux*, Couenne::compExpr,
std::al
locator<Couenne::exprAux*> >::find(Couenne::exprAux* const&)
(stl_set.h:585)
==26003==    by 0x457DA8:
Couenne::CouenneConstraint::standardize(Couenne::Couen
neProblem*) (constrStandardize.cpp:166)
==26003==    by 0x4548CB: Couenne::CouenneProblem::standardize()
(standardize.cp
p:193)
==26003==    by 0x44AFA3:
Couenne::CouenneProblem::reformulate(Couenne::CouenneC
utGenerator*) (reformulate.cpp:79)
==26003==    by 0x40C0CC:
Couenne::CouenneSetup::InitializeCouenne(char**, Couen
ne::CouenneProblem*, Ipopt::SmartPtr<Bonmin::TMINLP>,
Couenne::CouenneInterface*
, Bonmin::Bab*) (BonCouenneSetup.cpp:235)
==26003==    by 0x405F4D: main (BonCouenne.cpp:117)
==26003==  Address 0x58098b0 is 0 bytes inside a block of size 72 free'd
==26003==    at 0x4A04E99: operator delete(void*)
(vg_replace_malloc.c:346)
==26003==    by 0x47E07D: Couenne::exprAux::~exprAux() (exprAux.cpp:105)
==26003==    by 0x45C4C7: Couenne::CouenneProblem::splitAux(double,
Couenne::exp
ression*, Couenne::expression*&, bool*, Couenne::expression::auxSign&)
(splitAux
.cpp:502)
==26003==    by 0x45788E:
Couenne::CouenneConstraint::standardize(Couenne::Couen
neProblem*) (constrStandardize.cpp:79)
==26003==    by 0x4548CB: Couenne::CouenneProblem::standardize()
(standardize.cp
p:193)
==26003==    by 0x44AFA3:
Couenne::CouenneProblem::reformulate(Couenne::CouenneC
utGenerator*) (reformulate.cpp:79)
==26003==    by 0x40C0CC:
Couenne::CouenneSetup::InitializeCouenne(char**, Couen
ne::CouenneProblem*, Ipopt::SmartPtr<Bonmin::TMINLP>,
Couenne::CouenneInterface*
, Bonmin::Bab*) (BonCouenneSetup.cpp:235)
==26003==    by 0x405F4D: main (BonCouenne.cpp:117)
==26003== 
==26003== Invalid read of size 8
==26003==    at 0x44FFBB:
Couenne::compExpr::operator()(Couenne::exprAux*, Couen
ne::exprAux*) const (CouenneExprAux.hpp:212)
==26003==    by 0x450AF8: std::_Rb_tree<Couenne::exprAux*,
Couenne::exprAux*, st
d::_Identity<Couenne::exprAux*>, Couenne::compExpr,
std::allocator<Couenne::expr
Aux*> >::_M_lower_bound(std::_Rb_tree_node<Couenne::exprAux*>*,
std::_Rb_tree_no
de<Couenne::exprAux*>*, Couenne::exprAux* const&) (stl_tree.h:1004)
==26003==    by 0x4503A9: std::_Rb_tree<Couenne::exprAux*,
Couenne::exprAux*, st
d::_Identity<Couenne::exprAux*>, Couenne::compExpr,
std::allocator<Couenne::expr
Aux*> >::find(Couenne::exprAux* const&) (stl_tree.h:1519)
==26003==    by 0x4501F0: std::set<Couenne::exprAux*, Couenne::compExpr,
std::al
locator<Couenne::exprAux*> >::find(Couenne::exprAux* const&)
(stl_set.h:585)
==26003==    by 0x457DA8:
Couenne::CouenneConstraint::standardize(Couenne::Couen
neProblem*) (constrStandardize.cpp:166)
==26003==    by 0x4548CB: Couenne::CouenneProblem::standardize()
(standardize.cp
p:193)
==26003==    by 0x44AFA3:
Couenne::CouenneProblem::reformulate(Couenne::CouenneC
utGenerator*) (reformulate.cpp:79)
==26003==    by 0x40C0CC:
Couenne::CouenneSetup::InitializeCouenne(char**, Couen
ne::CouenneProblem*, Ipopt::SmartPtr<Bonmin::TMINLP>,
Couenne::CouenneInterface*
, Bonmin::Bab*) (BonCouenneSetup.cpp:235)
==26003==    by 0x405F4D: main (BonCouenne.cpp:117)
==26003==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==26003== 
==26003== 
==26003== Process terminating with default action of signal 11 (SIGSEGV)
==26003==  Access not within mapped region at address 0x0







More information about the Couenne mailing list