ampl / mp

An open-source library for mathematical programming
https://mp.ampl.com
Other
229 stars 42 forks source link

[mp-3.1.0] problem-test: "invalid index" thrown in the test body #101

Closed sagitter closed 8 years ago

sagitter commented 8 years ago

Hi, sorry for these annoying tickets, I'm trying to build mp on secondary archs for the Fedora Project,

problem-test fails on architecture PPC64:

15: unknown file: Failure
15: C++ exception with description "invalid index" thrown in the test body.

Full log: https://kojipkgs.fedoraproject.org//work/tasks/4099/14604099/build.log

vitaut commented 8 years ago

The bug reports are always welcome =). Could you get a stack trace, e.g. by running the following command:

gdb -batch -ex run -ex bt --args ./problem-test --gtest_catch_exceptions=0

Thanks!

sagitter commented 8 years ago

I really have not a PPC hardware, I can try to compile by a PPC64 build-system. Log: https://kojipkgs.fedoraproject.org//work/tasks/699/14620699/build.log

sagitter commented 8 years ago

If there is not an immediate fix, how I can skip one or more tests ?

vitaut commented 8 years ago

Sorry for a slow response and thanks for the build log. You can disable the test by prepending DISABLED_ to its name (MutAlgebraicCon).

I'm copying the relevant part of the log for reference:

[ RUN      ] ProblemTest.MutAlgebraicCon
terminate called after throwing an instance of 'AssertionFailure'
  what():  invalid index
Program received signal SIGABRT, Aborted.
0x00003fffb7a34dc0 in .raise () from /lib64/libc.so.6
#0  0x00003fffb7a34dc0 in .raise () from /lib64/libc.so.6
#1  0x00003fffb7a36d54 in .abort () from /lib64/libc.so.6
#2  0x00003fffb7e0f030 in ._ZN9__gnu_cxx27__verbose_terminate_handlerEv () from /usr/lib64/libstdc++.so.6
#3  0x00003fffb7e0bf54 in ?? () from /usr/lib64/libstdc++.so.6
#4  0x00003fffb7e0bfa0 in ._ZSt9terminatev () from /usr/lib64/libstdc++.so.6
#5  0x00003fffb7e0c17c in .__cxa_throw () from /usr/lib64/libstdc++.so.6
#6  0x000000002004b93c in SetInitialDualValue (this=<value optimized out>) at /builddir/build/BUILD/mp-3.1.0/include/mp/problem.h:177
#7  set_dual (this=<value optimized out>) at /builddir/build/BUILD/mp-3.1.0/include/mp/problem.h:650
#8  ProblemTest_MutAlgebraicCon_Test::TestBody (this=<value optimized out>) at /builddir/build/BUILD/mp-3.1.0/test/problem-test.cc:392
#9  0x00000000200b24a8 in testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=0x20100460, method=<value optimized out>, location=0x200baa08 "the test body") at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3619
#10 0x000000002009f774 in testing::Test::Run (this=0x20100460) at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3636
#11 0x000000002009f8b8 in testing::TestInfo::Run (this=0x201022f0) at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3811
#12 0x000000002009faa4 in testing::TestCase::Run (this=0x201006c0) at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3929
#13 0x00000000200a33b4 in testing::internal::UnitTestImpl::RunAllTests (this=0x20100180) at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:5800
#14 0x00000000200b1d78 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x20100180, method=(bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl *)) 0x200f6888 <testing::internal::UnitTestImpl::RunAllTests()>, location=0x200ba740 "auxiliary test code (environments or event listeners)") at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3619
#15 0x000000002009ebd8 in testing::UnitTest::Run (this=0x200f7ca0) at /builddir/build/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:5414
#16 0x00000000200b2a3c in RUN_ALL_TESTS (argc=) at /builddir/build/BUILD/mp-3.1.0/test/../thirdparty/gtest/gtest.h:20059
#17 main (argc=) at /builddir/build/BUILD/mp-3.1.0/test/test-main.cc:37
vitaut commented 8 years ago

@sagitter I've added a few checks in https://github.com/ampl/mp/commit/dd9a01a0fc7eacbbafaab0f0efd5e27765eb9c2a. Could you by any chance try building it and running the tests on the PPC64 build-system?

sagitter commented 8 years ago

Of course. I have tested mp-3.1.0 + patch from https://github.com/ampl/mp/commit/dd9a01a0fc7eacbbafaab0f0efd5e27765eb9c2a:

PPC64* builds for Fedora: passed PPC64* builds for EPEL7: passed PPC64 builds for EPEL6: passed (here, gsl-test goes in deadlock, I will open a new ticket about it).

vitaut commented 8 years ago

Thanks for the confirmation. I've submitted a similar patch (without extra diagnostics) to master.