ampl / mp

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

[mp-3.1.0] gsl-test stalled #103

Open sagitter opened 8 years ago

sagitter commented 8 years ago

Hi,

I noted that gsl-test is stalled by performing tests on EPEL6 builds: https://kojipkgs.fedoraproject.org//work/tasks/2287/14882287/build.log:

      Start  3: gsl-test
3: Test command: /builddir/build/BUILD/mp-3.1.0/build/bin/gsl-test
3: Test timeout computed to be: 9.99988e+06
3: [==========] Running 77 tests from 1 test case.
3: [----------] Global test environment set-up.
3: [----------] 77 tests from GSLTest
3: [ RUN      ] GSLTest.NoLibErrors
3: [       OK ] GSLTest.NoLibErrors (0 ms)
3: [ RUN      ] GSLTest.Elementary
3: [       OK ] GSLTest.Elementary (1206 ms)
3: [ RUN      ] GSLTest.AiryA
3: [       OK ] GSLTest.AiryA (9 ms)
3: [ RUN      ] GSLTest.AiryB
3: [       OK ] GSLTest.AiryB (8 ms)
3: [ RUN      ] GSLTest.AiryZero
3: [       OK ] GSLTest.AiryZero (0 ms)
3: [ RUN      ] GSLTest.BesselJ
3: [       OK ] GSLTest.BesselJ (44 ms)
3: [ RUN      ] GSLTest.BesselY
3: [       OK ] GSLTest.BesselY (29 ms)
3: [ RUN      ] GSLTest.BesselI
3: [       OK ] GSLTest.BesselI (91 ms)
3: [ RUN      ] GSLTest.BesselK
3: Absolute tolerance of 1.38778e-14 not reached for d/dx1 d/dx1 gsl_sf_bessel_Kn at (-5, 5), computed = 0.0750056, actual = 0.0750056
3: Absolute tolerance of 1.38778e-14 not reached for d/dx1 d/dx1 gsl_sf_bessel_Kn at (5, 5), computed = 0.0750056, actual = 0.0750056
3: [       OK ] GSLTest.BesselK (56 ms)
3: [ RUN      ] GSLTest.Besselj
3: [       OK ] GSLTest.Besselj (23 ms)
3: [ RUN      ] GSLTest.Bessely
3: [       OK ] GSLTest.Bessely (16 ms)
3: [ RUN      ] GSLTest.Besseli
3: [       OK ] GSLTest.Besseli (36 ms)
3: [ RUN      ] GSLTest.Besselk
3: [       OK ] GSLTest.Besselk (17 ms)
3: [ RUN      ] GSLTest.BesselFractionalOrder
3: [       OK ] GSLTest.BesselFractionalOrder (89 ms)
3: [ RUN      ] GSLTest.BesselZero
3: [       OK ] GSLTest.BesselZero (2 ms)
3: [ RUN      ] GSLTest.Clausen
3: Overriding d/dx0 gsl_sf_clausen at (0), computed = 23.5005, overridden = inf
3: [       OK ] GSLTest.Clausen (3 ms)
3: [ RUN      ] GSLTest.Hydrogenic
3: [       OK ] GSLTest.Hydrogenic (512 ms)
3: [ RUN      ] GSLTest.Coulomb
3: [       OK ] GSLTest.Coulomb (3 ms)
3: [ RUN      ] GSLTest.Coupling3j
3: [       OK ] GSLTest.Coupling3j (0 ms)
3: [ RUN      ] GSLTest.Coupling6j
3: [       OK ] GSLTest.Coupling6j (0 ms)
3: [ RUN      ] GSLTest.Coupling9j
3: [       OK ] GSLTest.Coupling9j (0 ms)
3: [ RUN      ] GSLTest.Dawson
3: [       OK ] GSLTest.Dawson (3 ms)
3: [ RUN      ] GSLTest.Debye
3: [       OK ] GSLTest.Debye (10 ms)
3: [ RUN      ] GSLTest.Dilog
3: Overriding d/dx0 gsl_sf_dilog at (1), computed = nan, overridden = inf
3: [       OK ] GSLTest.Dilog (4 ms)
3: [ RUN      ] GSLTest.EllInt

List of used dependencies: https://kojipkgs.fedoraproject.org//work/tasks/2287/14882287/root.log

vitaut commented 8 years ago

Thanks for the bug report. Does it also happen on PPC64 only?

sagitter commented 8 years ago

No, it also happens on x86_64/i686 with builds for EPEL6 only.

vitaut commented 8 years ago

How can I debug this issue? Is there a Docker image for EPEL6 or something?

sagitter commented 8 years ago

Is there a Docker image for EPEL6 or something?

Hope what you need is here: --> To get CentOS 6 base image

How can I debug this issue?

  1. enable epel6 repo
  2. mp-3.1.0 is available for testing on centos6 from epel6; as root: # debuginfo-install mp --enablerepo=epel-testing
  3. Some notes for debugging: https://fedoraproject.org/wiki/StackTraces
vitaut commented 8 years ago

So I ran the following commands in Centos6 Docker:

# yum install epel-release
# debuginfo-install mp --enablerepo=epel-testing
...
Could not find a package for: mp

Am I missing something?

sagitter commented 8 years ago

I never used Docker but if you can run a CentOS6 system, these commands should be correct:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
# debuginfo-install mp --enablerepo=epel-testing
vitaut commented 8 years ago

Still the same error. Here's the full output:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
Loaded plugins: fastestmirror, ovl
Setting up Install Process
epel-release-latest-6.noarch.rpm                         |  14 kB     00:00     
Examining /var/tmp/yum-root-J5R3UW/epel-release-latest-6.noarch.rpm: epel-release-6-8.noarch
Marking /var/tmp/yum-root-J5R3UW/epel-release-latest-6.noarch.rpm to be installed
base                                                     | 3.7 kB     00:00     
base/primary_db                                          | 4.7 MB     00:00     
extras                                                   | 3.4 kB     00:00     
extras/primary_db                                        |  37 kB     00:00     
updates                                                  | 3.4 kB     00:00     
updates/primary_db                                       | 1.4 MB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:6-8 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch       Version    Repository                         Size
================================================================================
Installing:
 epel-release     noarch     6-8        /epel-release-latest-6.noarch      22 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : epel-release-6-8.noarch                                      1/1 
  Verifying  : epel-release-6-8.noarch                                      1/1 

Installed:
  epel-release.noarch 0:6-8                                                     

Complete!
[root@4053e19dee37 /]# yum install yum-utils
Loaded plugins: fastestmirror, ovl
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirror.n5tech.com
 * epel: mirror.prgmr.com
 * extras: repos.lax.quadranet.com
 * updates: repos.lax.quadranet.com
Resolving Dependencies
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.30-37.el6 will be installed
--> Processing Dependency: libxml2-python for package: yum-utils-1.1.30-37.el6.noarch
--> Running transaction check
---> Package libxml2-python.x86_64 0:2.7.6-21.el6_8.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package              Arch         Version                  Repository     Size
================================================================================
Installing:
 yum-utils            noarch       1.1.30-37.el6            base          112 k
Installing for dependencies:
 libxml2-python       x86_64       2.7.6-21.el6_8.1         updates       325 k

Transaction Summary
================================================================================
Install       2 Package(s)

Total download size: 437 k
Installed size: 2.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): libxml2-python-2.7.6-21.el6_8.1.x86_64.rpm        | 325 kB     00:00     
(2/2): yum-utils-1.1.30-37.el6.noarch.rpm                | 112 kB     00:00     
--------------------------------------------------------------------------------
Total                                           1.1 MB/s | 437 kB     00:00     
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 Package: centos-release-6-8.el6.centos.12.3.x86_64 (@CentOS/6.8)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libxml2-python-2.7.6-21.el6_8.1.x86_64                       1/2 
  Installing : yum-utils-1.1.30-37.el6.noarch                               2/2 
  Verifying  : libxml2-python-2.7.6-21.el6_8.1.x86_64                       1/2 
  Verifying  : yum-utils-1.1.30-37.el6.noarch                               2/2 

Installed:
  yum-utils.noarch 0:1.1.30-37.el6                                              

Dependency Installed:
  libxml2-python.x86_64 0:2.7.6-21.el6_8.1                                      

Complete!
[root@4053e19dee37 /]# debuginfo-install mp --enablerepo=epel-testing
Loaded plugins: fastestmirror, ovl
enabling epel-debuginfo
enabling base-debuginfo
enabling epel-testing-debuginfo
Loading mirror speeds from cached hostfile
epel-debuginfo/metalink                                  |  11 kB     00:00     
epel-testing/metalink                                    |  12 kB     00:00     
epel-testing-debuginfo/metalink                          |  13 kB     00:00     
 * base: mirror.n5tech.com
 * epel: mirror.prgmr.com
 * epel-debuginfo: mirrors.xmission.com
 * epel-testing: mirror.prgmr.com
 * epel-testing-debuginfo: ny-mirrors.evowise.com
 * extras: repos.lax.quadranet.com
 * updates: repos.lax.quadranet.com
base-debuginfo                                           | 2.5 kB     00:00     
base-debuginfo/primary_db                                | 1.6 MB     00:03     
epel-debuginfo                                           | 3.0 kB     00:00     
epel-debuginfo/primary_db                                | 679 kB     00:00     
epel-testing                                             | 4.3 kB     00:00     
epel-testing/primary_db                                  | 385 kB     00:00     
epel-testing-debuginfo                                   | 3.0 kB     00:00     
epel-testing-debuginfo/primary_db                        |  21 kB     00:00     
Could not find a package for: mp
No debuginfo packages available to install

I've run this on the following version of CentOS:

# cat /etc/centos-release
CentOS release 6.8 (Final)

and also had to install yum-utils for debuginfo-install.

Any ideas?

sagitter commented 8 years ago

I have pushed mp in the repositories stable just yesterday; however, debuginfo-install command should automatically activate all repos it needs. Try:

# debuginfo-install mp --enablerepo=base-debuginfo,epel-debuginfo

On my CentOS6 it's working.

vitaut commented 8 years ago

Still couldn't find the package unfortunately. Could you by any chance run gsl-test in a debugger, interrupt when it freezes and post the stack trace here?

sagitter commented 8 years ago

I hope that it's useful (i never used GDB):

$ gdb ./gsl-test
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-90.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/guest/rpmbuild/BUILD/mp-3.1.0/build/bin/gsl-test...done.
(gdb) run
Starting program: /home/guest/rpmbuild/BUILD/mp-3.1.0/build/bin/gsl-test 
[Thread debugging using libthread_db enabled]
[==========] Running 77 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 77 tests from GSLTest
[ RUN      ] GSLTest.NoLibErrors
[       OK ] GSLTest.NoLibErrors (2 ms)
[ RUN      ] GSLTest.Elementary
[       OK ] GSLTest.Elementary (2975 ms)
[ RUN      ] GSLTest.AiryA
[       OK ] GSLTest.AiryA (55 ms)
[ RUN      ] GSLTest.AiryB
[       OK ] GSLTest.AiryB (60 ms)
[ RUN      ] GSLTest.AiryZero
[       OK ] GSLTest.AiryZero (2 ms)
[ RUN      ] GSLTest.BesselJ
[       OK ] GSLTest.BesselJ (174 ms)
[ RUN      ] GSLTest.BesselY
[       OK ] GSLTest.BesselY (119 ms)
[ RUN      ] GSLTest.BesselI
[       OK ] GSLTest.BesselI (299 ms)
[ RUN      ] GSLTest.BesselK
[       OK ] GSLTest.BesselK (201 ms)
[ RUN      ] GSLTest.Besselj
[       OK ] GSLTest.Besselj (101 ms)
[ RUN      ] GSLTest.Bessely
[       OK ] GSLTest.Bessely (85 ms)
[ RUN      ] GSLTest.Besseli
[       OK ] GSLTest.Besseli (136 ms)
[ RUN      ] GSLTest.Besselk
[       OK ] GSLTest.Besselk (85 ms)
[ RUN      ] GSLTest.BesselFractionalOrder
[       OK ] GSLTest.BesselFractionalOrder (374 ms)
[ RUN      ] GSLTest.BesselZero
[       OK ] GSLTest.BesselZero (5 ms)
[ RUN      ] GSLTest.Clausen
Overriding d/dx0 gsl_sf_clausen at (0), computed = 21.1452, overridden = inf
[       OK ] GSLTest.Clausen (21 ms)
[ RUN      ] GSLTest.Hydrogenic
[       OK ] GSLTest.Hydrogenic (1360 ms)
[ RUN      ] GSLTest.Coulomb
[       OK ] GSLTest.Coulomb (14 ms)
[ RUN      ] GSLTest.Coupling3j
[       OK ] GSLTest.Coupling3j (4 ms)
[ RUN      ] GSLTest.Coupling6j
[       OK ] GSLTest.Coupling6j (3 ms)
[ RUN      ] GSLTest.Coupling9j
[       OK ] GSLTest.Coupling9j (1 ms)
[ RUN      ] GSLTest.Dawson
[       OK ] GSLTest.Dawson (24 ms)
[ RUN      ] GSLTest.Debye
[       OK ] GSLTest.Debye (61 ms)
[ RUN      ] GSLTest.Dilog
Overriding d/dx0 gsl_sf_dilog at (1), computed = nan, overridden = inf
[       OK ] GSLTest.Dilog (14 ms)
[ RUN      ] GSLTest.EllInt
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7707763 in gsl_sf_ellint_RF_e () from /usr/lib64/libgsl.so.0
Missing separate debuginfos, use: debuginfo-install gsl-1.13-1.el6.x86_64
(gdb) thread apply all bt full

Thread 1 (Thread 0x7ffff7bd2720 (LWP 2408)):
#0  0x00007ffff7707763 in gsl_sf_ellint_RF_e () from /usr/lib64/libgsl.so.0
No symbol table info available.
#1  0x00007ffff7707a0f in gsl_sf_ellint_Kcomp_e () from /usr/lib64/libgsl.so.0
No symbol table info available.
#2  0x00007ffff7707b2c in gsl_sf_ellint_Kcomp () from /usr/lib64/libgsl.so.0
No symbol table info available.
#3  0x00007ffff5de21b1 in amplgsl_sf_ellint_Kcomp (al=0x7fffffffcd60) at /home/guest/rpmbuild/BUILD/mp-3.1.0/src/gsl/amplgsl.cc:1358
        k = <value optimized out>
        kcomp = <value optimized out>
#4  0x00007ffff7f5e3d3 in fun::Function::operator() (this=0x7fffffffdb10, args=std::vector of length 1, capacity 1 = {...}, flags=0, use_deriv=..., 
    info=0x7ffff5de7b25) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/function.cc:594
        num_args = 1
        value = <value optimized out>
        invalid_args = <value optimized out>
        ra = std::vector of length 1, capacity 1 = {nan(0x8000000000000)}
        dig = std::vector of length 0, capacity 0
        al = {n = 1, nr = 1, at = 0x0, ra = 0x7ffff92e1030, sa = 0x0, derivs = 0x0, hes = 0x0, dig = 0x0, funcinfo = 0x7ffff5de7b25, AE = 0x7ffff82090d0, 
          f = 0x0, tva = 0x0, Errmsg = 0x0, TMI = 0x7ffff82092a0, Private = 0x0, nin = 0, nout = 0, nsin = 0, nsout = 0}
        derivs = std::vector of length 0, capacity 0
        hes = std::vector of length 0, capacity 0
#5  0x00007ffff7dfd0cd in (anonymous namespace)::GSLTest::TestFunc<fun::OneBinder<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> >, int, double> >(const fun::Function &, fun::OneBinder<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> >, int, double>, fun::Tuple &, unsigned int) (this=0x7ffff8381890, af=..., f=..., args=std::vector of length 1, capacity 1 = {...}, arg_index=0)
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:494
        gtest_ar = {success_ = 152, message_ = {ptr_ = 0x7ffff6b0a6d0}}
        has_double_arg = <value optimized out>
        num_args = 1
#6  0x00007ffff7e1c14b in DoTestFunc<fun::OneBinder<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> >, int, double> > (this=0x7ffff8381890, af=..., f=...) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:240
        args = std::vector of length 1, capacity 1 = {{type_ = fun::DOUBLE, {dval_ = nan(0x8000000000000), 
              sval_ = 0x7ff8000000000000 <Address 0x7ff8000000000000 out of bounds>, pval_ = 0x7ff8000000000000}}}
#7  TestFuncBindPrec<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> > > (this=0x7ffff8381890, af=..., f=...)
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:565
        num_args = <value optimized out>
#8  (anonymous namespace)::GSLTest::TestFuncBindPointers<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> > (this=0x7ffff8381890, af=..., 
    f=...) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:583
        first_type = fun::DOUBLE
        num_args = <value optimized out>
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) quit
A debugging session is active.

    Inferior 1 [process 2408] will be killed.

Quit anyway? (y or n) n
Not confirmed.
(gdb) thread apply all bt full

Thread 1 (Thread 0x7ffff7bd2720 (LWP 2408)):
#0  0x00007ffff7707763 in gsl_sf_ellint_RF_e () from /usr/lib64/libgsl.so.0
No symbol table info available.
#1  0x00007ffff7707a0f in gsl_sf_ellint_Kcomp_e () from /usr/lib64/libgsl.so.0
No symbol table info available.
#2  0x00007ffff7707b2c in gsl_sf_ellint_Kcomp () from /usr/lib64/libgsl.so.0
No symbol table info available.
#3  0x00007ffff5de21b1 in amplgsl_sf_ellint_Kcomp (al=0x7fffffffcd60) at /home/guest/rpmbuild/BUILD/mp-3.1.0/src/gsl/amplgsl.cc:1358
        k = <value optimized out>
        kcomp = <value optimized out>
#4  0x00007ffff7f5e3d3 in fun::Function::operator() (this=0x7fffffffdb10, args=std::vector of length 1, capacity 1 = {...}, flags=0, use_deriv=..., 
    info=0x7ffff5de7b25) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/function.cc:594
        num_args = 1
        value = <value optimized out>
        invalid_args = <value optimized out>
        ra = std::vector of length 1, capacity 1 = {nan(0x8000000000000)}
        dig = std::vector of length 0, capacity 0
        al = {n = 1, nr = 1, at = 0x0, ra = 0x7ffff92e1030, sa = 0x0, derivs = 0x0, hes = 0x0, dig = 0x0, funcinfo = 0x7ffff5de7b25, AE = 0x7ffff82090d0, 
          f = 0x0, tva = 0x0, Errmsg = 0x0, TMI = 0x7ffff82092a0, Private = 0x0, nin = 0, nout = 0, nsin = 0, nsout = 0}
        derivs = std::vector of length 0, capacity 0
        hes = std::vector of length 0, capacity 0
#5  0x00007ffff7dfd0cd in (anonymous namespace)::GSLTest::TestFunc<fun::OneBinder<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> >, int, double> >(const fun::Function &, fun::OneBinder<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> >, int, double>, fun::Tuple &, unsigned int) (this=0x7ffff8381890, af=..., f=..., args=std::vector of length 1, capacity 1 = {...}, arg_index=0)
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:494
        gtest_ar = {success_ = 152, message_ = {ptr_ = 0x7ffff6b0a6d0}}
        has_double_arg = <value optimized out>
        num_args = 1
#6  0x00007ffff7e1c14b in DoTestFunc<fun::OneBinder<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> >, int, double> > (this=0x7ffff8381890, af=..., f=...) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:240
        args = std::vector of length 1, capacity 1 = {{type_ = fun::DOUBLE, {dval_ = nan(0x8000000000000), 
              sval_ = 0x7ff8000000000000 <Address 0x7ff8000000000000 out of bounds>, pval_ = 0x7ff8000000000000}}}
#7  TestFuncBindPrec<<unnamed>::ResultBinder<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> > > (this=0x7ffff8381890, af=..., f=...)
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:565
        num_args = <value optimized out>
#8  (anonymous namespace)::GSLTest::TestFuncBindPointers<fun::FunctionPointer3<double, unsigned int, gsl_sf_result*, int> > (this=0x7ffff8381890, af=..., 
    f=...) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:583
        first_type = fun::DOUBLE
        num_args = <value optimized out>
---Type <return> to continue, or q <return> to quit---
#9  0x00007ffff7e6b87c in TestFunc<int (*)(double, gsl_mode_t, gsl_sf_result*)> (this=0x7ffff8381890)
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:251
No locals.
#10 (anonymous namespace)::GSLTest_EllInt_Test::TestBody (this=0x7ffff8381890) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/gsl-test.cc:834
No locals.
#11 0x00007ffff7f5b65d in HandleSehExceptionsInMethodIfSupported<testing::Test, void> (object=0x7ffff8381890, method=&virtual testing::Test::TestBody(), 
    location=0x7ffff7f7a2c0 "the test body") at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3563
No locals.
#12 testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=0x7ffff8381890, method=&virtual testing::Test::TestBody(), 
    location=0x7ffff7f7a2c0 "the test body") at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3599
No locals.
#13 0x00007ffff7f4e051 in testing::Test::Run (this=0x7ffff8381890) at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3636
        impl = 0x7ffff82096f0
#14 0x00007ffff7f4e137 in testing::TestInfo::Run (this=0x7ffff820b920) at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3811
        impl = 0x7ffff82096f0
        repeater = 0x7ffff8209070
        start = 1469144098847
        test = 0x7ffff8381890
#15 0x00007ffff7f4e277 in testing::TestCase::Run (this=0x7ffff8209940) at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3929
        i = 24
        impl = 0x7ffff82096f0
        repeater = 0x7ffff8209070
        start = 1469144092665
#16 0x00007ffff7f4e5cf in testing::internal::UnitTestImpl::RunAllTests (this=0x7ffff82096f0)
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:5800
        test_index = 0
        start = 1469144092592
        i = 0
        should_shard = <value optimized out>
        has_tests_to_run = true
        repeater = 0x7ffff8209070
        forever = false
        in_subprocess_for_death_test = <value optimized out>
        failed = false
        repeat = 1
#17 0x00007ffff7f5b1ed in HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x7ffff82096f0, method=
    (bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl *)) 0x7ffff7f4e2f0 <testing::internal::UnitTestImpl::RunAllTests()>, 
    location=0x7ffff7f7b6f8 "auxiliary test code (environments or event listeners)")
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3563
No locals.
---Type <return> to continue, or q <return> to quit---
#18 testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x7ffff82096f0, method=
    (bool (testing::internal::UnitTestImpl::*)(testing::internal::UnitTestImpl *)) 0x7ffff7f4e2f0 <testing::internal::UnitTestImpl::RunAllTests()>, 
    location=0x7ffff7f7b6f8 "auxiliary test code (environments or event listeners)")
    at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:3599
No locals.
#19 0x00007ffff7f4d6df in testing::UnitTest::Run (this=0x7ffff8207d20) at /home/guest/rpmbuild/BUILD/mp-3.1.0/thirdparty/gmock/gmock-gtest-all.cc:5414
        in_death_test_child_process = <value optimized out>
        premature_exit_file = <value optimized out>
#20 0x00007ffff7f5baef in RUN_ALL_TESTS (argc=1, argv=<value optimized out>) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/../thirdparty/gtest/gtest.h:20059
No locals.
#21 main (argc=1, argv=<value optimized out>) at /home/guest/rpmbuild/BUILD/mp-3.1.0/test/test-main.cc:37
No locals.
(gdb) quit
vitaut commented 8 years ago

@sagitter This does narrow down the issue, thanks! I'll look into it shortly.

vitaut commented 8 years ago

The stack trace suggests that gsl_sf_ellint_Kcomp hangs when GSL_NAN is passed as an argument. I've added a test to verify that in https://github.com/ampl/mp/commit/ebad0794678a38b35699910184d984cb205585b3. @sagitter, could you confirm that the new test (EllIntNaN) hangs too?

sagitter commented 8 years ago

I have rebuilt source code from ebad0794678a38b35699910184d984cb205585b3 : failed with some errors. Full log: https://kojipkgs.fedoraproject.org//work/tasks/5917/15025917/build.log

vitaut commented 8 years ago

The compile errors on gcc 4.4 should be fixed in https://github.com/ampl/mp/commit/8d14b5c51a3b8dbfb783cb9043089c7f7c8ca55b. @sagitter could you try again?

sagitter commented 8 years ago

Rebuilt with source code from 8d14b5c51a3b8dbfb783cb9043089c7f7c8ca55b:

GSLTest.EllIntNaN test hangs: https://kojipkgs.fedoraproject.org//work/tasks/5863/15075863/build.log

vitaut commented 8 years ago

Thanks for testing. It means that the issue is in GSL, more specifically gsl_sf_ellint_Kcomp(GSL_NAN, GSL_PREC_DOUBLE). I'll report it upstream.

vitaut commented 8 years ago

Reported to GSL in http://lists.gnu.org/archive/html/bug-gsl/2016-08/msg00002.html.

vitaut commented 8 years ago

I have disabled passing NaN to gsl_sf_ellint_Kcomp in https://github.com/ampl/mp/commit/24e386066d7e182a62c9debf76e14355d160e71e for now. @sagitter please let me know if you notice similar issues with other functions.

sagitter commented 8 years ago

Rebuilt with source code from 24e386066d7e182a62c9debf76e14355d160e71e

Unfortunately still hangs: https://kojipkgs.fedoraproject.org//work/tasks/3673/15133673/build.log

vitaut commented 8 years ago

Thanks for testing. I've done the same for gsl_sf_ellint_Ecomp and gsl_sf_ellint_Pcomp in https://github.com/ampl/mp/commit/7e9e922e1f97b49ba646e8465731258b1ca78dbd. Not sure if other functions are affected so I've added diagnostics which will help to identify hanging functions.

sagitter commented 8 years ago

Same situation with https://github.com/ampl/mp/commit/7e9e922e1f97b49ba646e8465731258b1ca78dbd: https://kojipkgs.fedoraproject.org//work/tasks/1647/15141647/build.log

I guess I have to disable gsl-test entirely.

vitaut commented 8 years ago

Bummer, the diagnostics didn't work because of buffering. Fixed in https://github.com/ampl/mp/commit/01d56c900fdfc1ae6fd169259ae9babc965581d2.

You can disable just EllInt by adding DISABLED_ prefix to the test name:

TEST_F(GSLTest, DISABLED_EllInt) {
...
sagitter commented 8 years ago

3: Testing gsl_sf_ellint_F hangs too: http://koji.fedoraproject.org/koji/getfile?taskID=15153851&name=build.log

I disabled GSLTest entirely; let me know if you need new builds for testing.

vitaut commented 8 years ago

The issues with EllInt test should be fixed in https://github.com/ampl/mp/commit/bdc9b8d12b7d72a09c45e15826a95dbe2fc55c7c. Thanks!

sagitter commented 8 years ago

This time is 3: Testing gsl_sf_ellint_RC that stalled: https://kojipkgs.fedoraproject.org//work/tasks/9982/15199982/build.log

vitaut commented 8 years ago

I suggest disabling EllInt then until the issue is solved in GSL.

vitaut commented 8 years ago

Here's the GSL bug report for future reference: http://savannah.gnu.org/bugs/?48702