[Impact]
IPOPT uses uninitialized memory due to a change in the MUMPS API.
First reported in idyntree upstream: https://github.com/robotology/idyntree/issues/456
Running ipopt_example in valgrind gives the following output:
==8203== Conditional jump or move depends on uninitialised value(s)
==8203== at 0x5C41E26: dmumps_ (in /usr/lib/x86_64-linux-gnu/libdmumps_seq-5.1.2.so)
==8203== by 0x5C4744D: dmumps_f77_ (in /usr/lib/x86_64-linux-gnu/libdmumps_seq-5.1.2.so)
==8203== by 0x5C3FF52: dmumps_c (in /usr/lib/x86_64-linux-gnu/libdmumps_seq-5.1.2.so)
==8203== by 0x4C34336:
Ipopt::MumpsSolverInterface::MumpsSolverInterface() (in /usr/lib/libipopt.so.1.9.9)
==8203== by 0x4B64B7A:
Ipopt::AlgorithmBuilder::BuildBasicAlgorithm(Ipopt::Journalist const&, Ipopt::OptionsList const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/libipopt.so.1.9.9)
==8203== by 0x4B26CB5:
Ipopt::IpoptApplication::OptimizeNLP(Ipopt::SmartPtr<Ipopt::NLP> const&, Ipopt::SmartPtr<Ipopt::AlgorithmBuilder>&) (in /usr/lib/libipopt.so.1.9.9)
==8203== by 0x4B1E4D8:
Ipopt::IpoptApplication::OptimizeNLP(Ipopt::SmartPtr<Ipopt::NLP> const&) (in /usr/lib/libipopt.so.1.9.9)
==8203== by 0x4B1E6A9:
Ipopt::IpoptApplication::OptimizeTNLP(Ipopt::SmartPtr<Ipopt::TNLP> const&) (in /usr/lib/libipopt.so.1.9.9)
==8203== by 0x10B58F: main (in /home/graham/debian-packages-ssd/coinor-ipopt/ipopt-cmake-demo/build/ipopt_example)
...
==8203== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
[Test Case]
sudo apt install cmake valgrind build-essential coinor-libipopt-dev
git clone https://github.com/traversaro/ipopt-cmake-demo
cd ipopt-cmake-demo
mkdir build
cd build
cmake ..
make
valgrind ./ipopt_example
valgrind should report 0 errors:
==8300== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
[Regression Potential]
Reverse build dependencies are freefem++ and kido
[Impact] /github. com/robotology/ idyntree/ issues/ 456
IPOPT uses uninitialized memory due to a change in the MUMPS API.
First reported in idyntree upstream:
https:/
Running ipopt_example in valgrind gives the following output:
==8203== Conditional jump or move depends on uninitialised value(s) x86_64- linux-gnu/ libdmumps_ seq-5.1. 2.so) x86_64- linux-gnu/ libdmumps_ seq-5.1. 2.so) x86_64- linux-gnu/ libdmumps_ seq-5.1. 2.so) MumpsSolverInte rface:: MumpsSolverInte rface() (in /usr/lib/ libipopt. so.1.9. 9) AlgorithmBuilde r::BuildBasicAl gorithm( Ipopt:: Journalist const&, Ipopt::OptionsList const&, std::__ cxx11:: basic_string< char, std::char_ traits< char>, std::allocator< char> > const&) (in /usr/lib/ libipopt. so.1.9. 9) IpoptApplicatio n::OptimizeNLP( Ipopt:: SmartPtr< Ipopt:: NLP> const&, Ipopt:: SmartPtr< Ipopt:: AlgorithmBuilde r>&) (in /usr/lib/ libipopt. so.1.9. 9) IpoptApplicatio n::OptimizeNLP( Ipopt:: SmartPtr< Ipopt:: NLP> const&) (in /usr/lib/ libipopt. so.1.9. 9) IpoptApplicatio n::OptimizeTNLP (Ipopt: :SmartPtr< Ipopt:: TNLP> const&) (in /usr/lib/ libipopt. so.1.9. 9) debian- packages- ssd/coinor- ipopt/ipopt- cmake-demo/ build/ipopt_ example)
==8203== at 0x5C41E26: dmumps_ (in /usr/lib/
==8203== by 0x5C4744D: dmumps_f77_ (in /usr/lib/
==8203== by 0x5C3FF52: dmumps_c (in /usr/lib/
==8203== by 0x4C34336:
Ipopt::
==8203== by 0x4B64B7A:
Ipopt::
==8203== by 0x4B26CB5:
Ipopt::
==8203== by 0x4B1E4D8:
Ipopt::
==8203== by 0x4B1E6A9:
Ipopt::
==8203== by 0x10B58F: main (in /home/graham/
...
==8203== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
[Test Case] /github. com/traversaro/ ipopt-cmake- demo
sudo apt install cmake valgrind build-essential coinor-libipopt-dev
git clone https:/
cd ipopt-cmake-demo
mkdir build
cd build
cmake ..
make
valgrind ./ipopt_example
valgrind should report 0 errors:
==8300== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
[Regression Potential]
Reverse build dependencies are freefem++ and kido