lanl-ansi/Alpine.jl

Ipopt: corrupted double-linked list/julia: malloc.c:3852: _int_malloc: Assertion `chunk_main_arena (fwd)' failed.

freemin7 opened this issue · 2 comments

using JuMP, Alpine, Cbc, Ipopt, Pavito
using Juniper
m = Model(optimizer_with_attributes(Alpine.Optimizer, "nlp_solver" => Ipopt.Optimizer, "mip_solver" => Cbc.Optimizer, "minlp_solver" => optimizer_with_attributes(Juniper.Optimizer, "nl_solver"=>optimizer_with_attributes(Ipopt.Optimizer, "print_level"=>0))))
@variable(m, x[1:5], Bin)
@variable(m, y[1:5], Bin)
@variable(m, eps() <= a[1:5] <= 1)
@variable(m, eps() <= b[1:5] <= 1)

#@NLconstraint(m, (a[1]*x[1]+a[2]*x[2]+a[3]*x[3]+a[4]*x[4]+a[5]*x[5] - (b[1]*y[1]+b[2]*y[2]+b[3]*y[3]+b[4]*y[4]+b[5]*y[5]))*((1-a[1]x[1])*(1-a[2]x[2])*(1-a[3]x[3])*(1-a[4]x[4])*(1-a[5]x[5]) - (1-b[1]*y[1])*(1-b[2]*y[2])*(1-b[3]*y[3])*(1-b[4]*y[4])*(1-b[5]*y[5])) >= -0.5)

@NLobjective(m, Min, (a[1]*x[1]+a[2]*x[2]+a[3]*x[3]+a[4]*x[4]+a[5]*x[5] - (b[1]*y[1]+b[2]*y[2]+b[3]*y[3]+b[4]*y[4]+b[5]*y[5]))*((1-a[1]x[1])*(1-a[2]x[2])*(1-a[3]x[3])*(1-a[4]x[4])*(1-a[5]x[5]) - (1-b[1]*y[1])*(1-b[2]*y[2])*(1-b[3]*y[3])*(1-b[4]*y[4])*(1-b[5]*y[5])))

JuMP.optimize!(m)

Leads to either:
corrupted double-linked list
julia: malloc.c:3852: _int_malloc: Assertion `chunk_main_arena (fwd)' failed.

]st:

  [07493b3f] Alpine v0.2.5
  [9961bab8] Cbc v0.8.1
  [2e9cd046] Gurobi v0.9.14
  [b6b21f68] Ipopt v0.6.3
  [4076af6c] JuMP v0.21.10
  [2ddba703] Juniper v0.7.0
  [cd433a01] Pavito v0.3.1

I am not sure how to make this work

An update to Ipopt to 0.7.0 seems to have fixed it?

  Status `/tmp/Project.toml`
  [07493b3f] Alpine v0.2.6 `~/.julia/dev/Alpine`
  [9961bab8] Cbc v0.8.1
  [2e9cd046] Gurobi v0.9.14
  [b6b21f68] Ipopt v0.7.0
  [4076af6c] JuMP v0.21.10
  [2ddba703] Juniper v0.7.0
  [2621e9c9] MadNLP v0.2.0
  [76087f3c] NLopt v0.6.3
  [cd433a01] Pavito v0.3.1
odow commented

There were some MUMPS issues with Ipopt 0.6 that caused the occasional segfault. I fixed it.