Bug#930577: coinor-libipopt-dev: uses uninitialized memory with MUMPS >= 5.1.0

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug#930577: coinor-libipopt-dev: uses uninitialized memory with MUMPS >= 5.1.0

Graham Inggs-3
Hi Drew

From a comment to upstream issue #456 [1]:

Just as a reference, the commit that solved the problem in upstream is
coin-or/Ipopt@4c36f88 [2]. The GitHub reference in the commit name is
wrong because since then the coin-or/Ipopt repo has been replaced with
the one migrated from trac, and all the "old" PR and issue got lost.

It seems that this patch should be used instead.

Are you able to provide steps to reproduce the problem?  We will need
that for the Ubuntu SRU.

Regards
Graham



[1] https://github.com/robotology/idyntree/issues/456#issuecomment-502429123
[2] https://github.com/coin-or/Ipopt/commit/4c36f888f1e8a609975f0bee60fe04958024236c

Reply | Threaded
Open this post in threaded view
|

Bug#930577: coinor-libipopt-dev: uses uninitialized memory with MUMPS >= 5.1.0

Graham Inggs-3
Hi Drew

On Sun, 16 Jun 2019 at 10:09, Graham Inggs <[hidden email]> wrote:
> Just as a reference, the commit that solved the problem in upstream is
> coin-or/Ipopt@4c36f88 [2]. The GitHub reference in the commit name is
> wrong because since then the coin-or/Ipopt repo has been replaced with
> the one migrated from trac, and all the "old" PR and issue got lost.
>
> It seems that this patch should be used instead.
>
> [2] https://github.com/coin-or/Ipopt/commit/4c36f888f1e8a609975f0bee60fe04958024236c

Using the steps below (also from the upstream bug), I was able to
reproduce the error and confirm that the above patch it.  I intend to
NMU.

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

Without the patch, valgrind outputs:

==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)

With the patch, valgrind outputs:

==8300== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Regards
Graham