MATLAB crashes when IPOPT converges to machine precision

Bug #1388487 reported by Drosos Kourounis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
coinor-ipopt (Ubuntu)
Undecided
Greg

Bug Description

Dear all,

I observed, that MATLAB crashes when IPOPT converges very close or even beyond the machine precision. I tried that both with the mex binaries provided at the site version 3.11.8 and the mex files compiled manually following the instructions for version 3.11.9. Both Matlab R2012b and R2014a were tested. It seems that it is independent of any compilation details and appears only when some of the several tolerances (it is not clear which one) converges to or below machine precision. Below
I am running the examplelasso.m, where the tolerance was set to 1e-17 to force the reproduction of the bug. At iteration 14 MATLAB crashes so we do not see the iteration 15. The same thing happens for several different examples when the tolerance is set close to machine epsilon.

This is Ipopt version 3.11.9, running with linear solver ma57.

Number of nonzeros in equality constraint Jacobian...: 0
Number of nonzeros in inequality constraint Jacobian.: 32
Number of nonzeros in Lagrangian Hessian.............: 36

Total number of variables............................: 16
                     variables with only lower bounds: 0
                variables with lower and upper bounds: 0
                     variables with only upper bounds: 0
Total number of equality constraints.................: 0
Total number of inequality constraints...............: 16
        inequality constraints with only lower bounds: 16
   inequality constraints with lower and upper bounds: 0
        inequality constraints with only upper bounds: 0

iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
   0 2.0362309e+03 0.00e+00 3.39e+01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
   1 1.2058144e+03 0.00e+00 2.54e+01 -6.0 3.86e+00 - 2.12e-01 2.56e-01f 1
   2 7.1857478e+01 0.00e+00 5.91e-01 0.1 7.22e+00 - 7.18e-01 1.00e+00f 1
   3 6.7127651e+01 0.00e+00 6.28e-07 -1.2 7.90e-01 - 1.00e+00 1.00e+00f 1
   4 5.6437844e+01 0.00e+00 2.21e-03 -2.0 1.86e+00 - 1.00e+00 9.53e-01f 1
   5 5.5727100e+01 0.00e+00 3.43e-03 -7.8 1.88e-01 - 9.91e-01 8.26e-01f 1
   6 5.5643835e+01 0.00e+00 1.31e-02 -4.4 3.30e-02 - 1.00e+00 7.77e-01f 1
   7 5.5629288e+01 0.00e+00 5.37e-03 -5.1 1.07e-02 - 1.00e+00 8.69e-01f 1
   8 5.5626581e+01 0.00e+00 7.28e-05 -6.2 5.04e-03 - 1.00e+00 9.97e-01f 1
   9 5.5626338e+01 0.00e+00 1.02e-12 -7.0 1.46e-03 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
  10 5.5626323e+01 0.00e+00 5.13e-06 -11.9 2.14e-04 - 1.00e+00 9.95e-01f 1
  11 5.5626323e+01 0.00e+00 6.58e-15 -13.7 5.83e-06 - 1.00e+00 1.00e+00h 1
  12 5.5626323e+01 0.00e+00 4.52e-15 -17.0 2.89e-09 - 1.00e+00 1.00e+00h 1
  13 5.5626323e+01 0.00e+00 5.75e-15 -17.3 1.36e-15 - 1.00e+00 1.00e+00 0
  14 5.5626323e+01 5.02e-17 4.19e-15 -17.3 4.27e-16 - 1.00e+00 1.00e+00T 0

Revision history for this message
Greg (gregmainland) wrote :

It sounds like this bug is unrelated to the coinor-ipopt package in ubuntu, is that correct? Do you have the libcoinor-ipopt package installed? You might try uninstalling it if you do. As MATLAB is proprietary software this is difficult to debug.

Can you provide a stack trace of the crash?

Changed in coinor-ipopt (Ubuntu):
status: New → Incomplete
Greg (gregmainland)
Changed in coinor-ipopt (Ubuntu):
assignee: nobody → Greg (gregmainland)
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers