Open
Description
We instantiate a new Solver_LP_abstract and never delete it.
Result on valgrind :
==21177== at 0x4C2E0EF: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==21177== by 0xD6EEC51: centroidal_dynamics::Solver_LP_abstract::getNewSolver(centroidal_dynamics::SolverLP) (in /opt/openrobots/lib/libhpp-centroidal-dynamics.so)
==21177== by 0xD6E030B: centroidal_dynamics::Equilibrium::Equilibrium(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, unsigned int, centroidal_dynamics::SolverLP, bool, unsigned int, bool) (in /opt/openrobots/lib/libhpp-centroidal-dynamics.so)
Adding a destructor in Equilibrium class deleting the pointer m_solver to Solver_LP_abstract , create a new memory leak with qpOASES when calling function solve() of solver_LP :
==18727== at 0x4C2E80F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18727== by 0x8B3AC70: qpOASES::QProblem::copy(qpOASES::QProblem const&) (in /opt/openrobots/lib/libqpOASES.so.3.2)
==18727== by 0x8B3AF9B: qpOASES::QProblem::operator=(qpOASES::QProblem const&) (in /opt/openrobots/lib/libqpOASES.so.3.2)
==18727== by 0x8B1404D: qpOASES::SQProblem::operator=(qpOASES::SQProblem const&) (in /opt/openrobots/lib/libqpOASES.so.3.2)
==18727== by 0xD8F553D: centroidal_dynamics::Solver_LP_qpoases::solve(Eigen::Ref<Eigen::Matrix<double, -1, 1, 0, -1, 1> const, 0, Eigen::InnerStride<1> > const&, Eigen::Ref<Eigen::Matrix<double, -1, 1, 0, -1, 1> const, 0, Eigen::InnerStride<1> > const&, Eigen::Ref<Eigen::Matrix<double, -1, 1, 0, -1, 1> const, 0, Eigen::InnerStride<1> > const&, Eigen::Ref<Eigen::Matrix<double, -1, -1, 1, -1, -1> const, 0, Eigen::OuterStride<-1> > const&, Eigen::Ref<Eigen::Matrix<double, -1, 1, 0, -1, 1> const, 0, Eigen::InnerStride<1> > const&, Eigen::Ref<Eigen::Matrix<double, -1, 1, 0, -1, 1> const, 0, Eigen::InnerStride<1> > const&, Eigen::Ref<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::InnerStride<1> >) (in /opt/openrobots/lib/libhpp-centroidal-dynamics.so)
==18727== by 0xD8A4C28: centroidal_dynamics::Equilibrium::computeEquilibriumRobustness(Eigen::Ref<Eigen::Matrix<double, 3, 1, 0, 3, 1> const, 0, Eigen::InnerStride<1> > const&, Eigen::Ref<Eigen::Matrix<double, 3, 1, 0, 3, 1> const, 0, Eigen::InnerStride<1> > const&, double&) (in /opt/openrobots/lib/libhpp-centroidal-dynamics.so)
Metadata
Metadata
Assignees
Labels
No labels