[Couenne-tickets] [Couenne] #24: segmentation fault in compExpr::operator()
Couenne
coin-trac at coin-or.org
Wed Feb 6 11:53:26 EST 2013
#24: segmentation fault in compExpr::operator()
---------------------+----------------------
Reporter: stefan | Owner: pbelotti
Type: defect | Status: new
Priority: major | Milestone:
Component: Couenne | Version:
Keywords: |
---------------------+----------------------
I got a new segmentation fault from inside the {{{standardize()}}}
procedure:
The problem in printed form is:
{{{
objectives:
min 1
constraints:
((-(100*(x_1+(-(x_1^2)))))+100*x_0) = 0
variables:
x_0 [ -1e+50 , 1e+50 ]
x_1 [ -1e+50 , 1e+50 ]
end
}}}
valgrind says:
{{{
==18675== Invalid read of size 8
==18675== at 0x51BC917:
Couenne::compExpr::operator()(Couenne::exprAux*, Couenne::exprAux*) const
(CouenneExprAux.hpp:212)
==18675== by 0x51BF212: std::_Rb_tree<Couenne::exprAux*,
Couenne::exprAux*, std::_Identity<Couenne::exprAux*>, Couenne::compExpr,
std::allocator<Couenne::exprAux*>
>::_M_lower_bound(std::_Rb_tree_node<Couenne::exprAux*>*,
std::_Rb_tree_node<Couenne::exprAux*>*, Couenne::exprAux* const&)
(stl_tree.h:1080)
==18675== by 0x51BDDD0: std::_Rb_tree<Couenne::exprAux*,
Couenne::exprAux*, std::_Identity<Couenne::exprAux*>, Couenne::compExpr,
std::allocator<Couenne::exprAux*> >::find(Couenne::exprAux* const&)
(stl_tree.h:1526)
==18675== by 0x51BCE52: std::set<Couenne::exprAux*, Couenne::compExpr,
std::allocator<Couenne::exprAux*> >::find(Couenne::exprAux* const&)
(stl_set.h:605)
==18675== by 0x51E9D40:
Couenne::CouenneConstraint::standardize(Couenne::CouenneProblem*)
(constrStandardize.cpp:176)
==18675== by 0x51EE631: Couenne::CouenneProblem::standardize()
(standardize.cpp:273)
==18675== by 0x51D5F20:
Couenne::CouenneProblem::reformulate(Couenne::CouenneCutGenerator*)
(reformulate.cpp:77)
==18675== by 0x4E7444E:
Couenne::CouenneSetup::InitializeCouenne(char**, Couenne::CouenneProblem*,
Ipopt::SmartPtr<Bonmin::TMINLP>, Couenne::CouenneInterface*, Bonmin::Bab*)
(BonCouenneSetup.cpp:258)
==18675== by 0x409A80: main (BonCouenne.cpp:195)
==18675== Address 0x0 is not stack'd, malloc'd or (recently) free'd
}}}
And indeed, {{{e0 -> Image ()}}} in {{{compExpr::operator()}}} is NULL.
This time, I modified !BonCouenne.cpp to make this reproducible for you.
You should get it by just replacing your !BonCouenne.cpp with the attached
one, then make and ./couenne.
I'm using stable/0.4 rev941.
--
Ticket URL: <https://projects.coin-or.org/ticket/24>
Couenne <https://projects.coin-or.org/Couenne>
Couenne, a solver for non-convex MINLP
More information about the Couenne-tickets
mailing list