Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

All tests fails on my platform #24

Open
facontidavide opened this issue Jan 4, 2015 · 14 comments
Open

All tests fails on my platform #24

facontidavide opened this issue Jan 4, 2015 · 14 comments
Labels

Comments

@facontidavide
Copy link

Hi,

apparently all the tests fails :(

My platform:

  1. Unutnu 14.04
  2. Gcc 4.8
  3. roboptim-core , version 2.0-417-gc422
  4. ipopt, version 3.11.9

Additionally cmake tells me

 -- WARNING: expecting failure for the following Schittkowski tests:
        13;16;20;25;28;44;55;56
 -- WARNING: expecting failure for the following Schittkowski tests:
        13;16;20;25;28;44;55;56

Any clue?
Thanks

Davide

@facontidavide facontidavide changed the title All test fails on my platform All tests fails on my platform Jan 4, 2015
@facontidavide
Copy link
Author

I forgor to mention the error:

 /home/shadylady/Software/roboptim-core-plugin-ipopt/src/ipopt-common.hxx:128: void    roboptim::IpoptSolverCommon<T>::solve() [with T = roboptim::Solver<roboptim::GenericDifferentiableFunction<roboptim::EigenMatrixDense>, boost::mpl::vector<roboptim::GenericLinearFunction<roboptim::EigenMatrixDense>, roboptim::GenericDifferentiableFunction<roboptim::EigenMatrixDense> > >]: Assertion `this->result_.which () != T::SOLVER_NO_SOLUTION' failed.
 unknown location(0): fatal error in "schittkowski_problemXX": signal: SIGABRT (application abort requested)

@bchretien bchretien added the bug label Jan 4, 2015
@bchretien
Copy link
Member

The CMake warnings indicate that Ipopt with the default parameters fails at solving some of the problems, so when running make test, we allow failure for these specific problems.

Still, the rest of the tests should be running just fine. To investigate this further, you may want to check the log files, for instance in your build directory, do:

$ make problem_1
$ ./tests/problem_1

Then read problem_1.log. FYI, I get this log file.

@facontidavide
Copy link
Author

No log file was generated. The output on the console is:

./tests/problem_1
Running 1 test case...
2
2
2
2
problem_1: /home/shadylady/Software/roboptim-core-plugin-ipopt/src/ipopt-common.hxx:128: void     roboptim::IpoptSolverCommon<T>::solve() [with T =   roboptim::Solver<roboptim::GenericDifferentiableFunction<roboptim::EigenMatrixDense>,  boost::mpl::vector<roboptim::GenericLinearFunction<roboptim::EigenMatrixDense>,   roboptim::GenericDifferentiableFunction<roboptim::EigenMatrixDense> > >]: Assertion `this- >result_.which () != T::SOLVER_NO_SOLUTION' failed.
unknown location(0): fatal error in "schittkowski_problem1": signal: SIGABRT (application abort  requested)
/home/shadylady/Software/roboptim-core-plugin-ipopt/tests/shared-tests/schittkowski/problem_1.cc(111): last checkpoint

*** 1 failure detected in test suite "Master Test Suite"

@bchretien
Copy link
Member

Can you compile roboptim in debug, run ./tests/problem_1 in gdb, and copy the backtrace here? It would help pinpointing the problem.

$ gdb ./tests/problem_1
gdb $ r
...
gdb $ bt

ipopt-common.hxx:128 contains an assertion that verifies that a solution was found, which may not happen if an exception was thrown somewhere. If that's the case, catch throw may help in gdb (which needs to be typed before running the program with r).

@thomas-moulard
Copy link
Member

For what it's worth, this error usually happens with versions of Ipopt which cannot find the linear solver somehow. Did you compile with IPOPT with MUMPS enabled?

@bchretien
Copy link
Member

I assumed that we was using the official Ubuntu package, but apparently the current version is 3.11.4 for Ubuntu 14.04, not 3.11.9 (which is the last Ipopt release). A packaging/compilation error could indeed explain this.

@francois-keith
Copy link
Member

I checked with almost the same configuration:

  1. Unutnu 14.04
  2. Gcc 4.8.2
  3. roboptim-core , version 2.0-418-g31668
  4. ipopt, version 3.11.9
    and it worked fine, but it requires MUMPS to be installed with ipopt.
    Otherwise, all the unittests will crash (I checked), as well as ipopt's unit tests, by the way.

You have to call get.Mumps in the ipopt source folder to get it:

cd ipopt/ThirdParty/Mumps
./get.Mumps
cd ${YOUR_BUILD_REPO}
make
make test
make install

@facontidavide
Copy link
Author

yes, i come to the same conclusion.

would it be nice to have an informative message instead of a crash in such
cases.

On Tuesday, January 20, 2015, François Keith [email protected]
wrote:

I checked with almost the same configuration:

  1. Unutnu 14.04
  2. Gcc 4.8.2
  3. roboptim-core , version 2.0-418-g31668
  4. ipopt, version 3.11.9
    and it worked fine, but it requires MUMPS to be installed with ipopt.
    Otherwise, all the unittests will crash (I checked), as well as ipopt's
    unit tests, by the way.

You have to call get.Mumps in the ipopt source folder to get it:

cd ipopt/ThirdParty/Mumps
./get.Mumps
cd ${YOUR_BUILD_REPO}
make
make test
make install

Reply to this email directly or view it on GitHub
#24 (comment)
.

Davide Faconti

@bchretien
Copy link
Member

Isn't that supposed to be solved by this change in the Ubuntu's Ipopt package?

  • Link against sequential MUMPS instead of parallel (Closes: #763621)
  • Enable unit tests

Did it also fail with this package release? Then again, I'm not using Debian or Ubuntu so I'm just relying on Travis' tests.

Back then, @thomas-moulard implemented a fix regarding problems with mumps and its parallel implementation, but this should now be done in the 3.11.9-2 package (cf. this diff).

@bchretien
Copy link
Member

@facontidavide did you install Ipopt from source without mumps? If this all comes down to this, we can add an extra check in CMakeLists.txt to make sure that Ipopt was compiled with/linked against mumps, although technically mumps is not required if another default linear solver is provided.

@facontidavide
Copy link
Author

yes, it was compiled from source :(

On Wed, Jan 21, 2015 at 5:06 AM, Benjamin Chrétien <[email protected]

wrote:

@facontidavide https://github.com/facontidavide did you install Ipopt
from source without mumps? If this all comes down to this, we can add an
extra check in CMakeLists.txt to make sure that Ipopt was compiled
with/linked against mumps, although technically mumps is not required if another
default linear solver
https://github.com/roboptim/roboptim-core-plugin-ipopt/blob/master/src/CMakeLists.txt#L16
is provided.


Reply to this email directly or view it on GitHub
#24 (comment)
.

Davide Faconti

@bchretien
Copy link
Member

Apparently the 14.04 Ubuntu package is not working great either... Cf. these Travis logs. Again, mumps + MPI issues.

@thomas-moulard
Copy link
Member

+1 for dumping informations to the console (or in a log file when it crashes then refer it in a message in a console)

@bchretien
Copy link
Member

For the CMake side, I added an extra check for MUMPS when it it set as the default linear solver. For runtime checking however, I'm not sure there's much we can do.

Also, to fix Travis builds with older Ubuntu versions (e.g. 14.04), we will install Ipopt from source from now on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants