Skip to content

Sporadic malloc errors with CSDP 4.1 #39

@mgreiff

Description

@mgreiff

I should preface this by saying that I'm a novice when it comes to optimization in Julia and JuMP.

I ran into some problems when using CSDP to solve a set of LMIs related H-infinity synthesis in robust control. To illustrate the problem, I have created a short script (see CSDP_issue_malloc.txt) which solves the same problem over and over again in a for-loop. It generates the correct solution repeatedly, until it eventually fails due to one of two reasons: a malloc issue (see printout 1), or not being able to find a feasible solution (see printout 2).

Typically these failures occur after 50-100 correctly solved problems. I have solved the same problem using CVX, as well as the and the interior-point methods by Nesterov used in Matlab's LMI solvers, in both cases yielding a gain of gamma=1.45. So the CSDP solver seems to work nicely, apart from the two sporadically occurring errors. I have run the same experiments with using SCS in Julia, and this works wihthout malloc errors, so the problem seems to be related to CSDP.jl and not JuMP.jl.

The first error might be related to your issue #2 , with the malloc leading to a segfault in my case, but I know too little about the internals of your CSDP-wrapper to accurately debug it. I thought I'd alert you to this issue, and would be thankful for any ideas on what may be causing the problems.

printout 1

~~~ Run 71 ~~~
CSDP 6.2.0
Iter:  0 Ap: 0.00e+00 Pobj: -5.0377634e+02 Ad: 0.00e+00 Dobj:  0.0000000e+00
Iter:  1 Ap: 1.00e+00 Pobj: -5.9563600e+02 Ad: 7.35e-01 Dobj: -2.4754075e-01
Iter:  2 Ap: 1.00e+00 Pobj: -5.9529382e+02 Ad: 9.48e-01 Dobj:  2.6619412e-03
julia(35362,0x7fff75c76000) malloc: *** error for object 0x7fdbbad12008:
incorrect checksum for freed object - object was probably modified after being
  freed. *** set a breakpoint in malloc_error_break to debug

signal (6): Abort trap: 6
in expression starting at no file:0
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 98455385 (Pool: 98433939; Big: 21446); GC: 291
Abort trap: 6

printout 2

~~~ Run 49 ~~~
CSDP 6.2.0
Iter:  0 Ap: 0.00e+00 Pobj: -5.0377634e+02 Ad: 0.00e+00 Dobj:  0.0000000e+00
Iter:  1 Ap: 1.00e+00 Pobj: -5.9695547e+02 Ad: 7.35e-01 Dobj: -8.6584995e-01
.
.
.
Iter: 50 Ap: 7.86e-09 Pobj: -1.1346790e+18 Ad: 2.32e-08 Dobj: -8.7559876e+03
Stuck at edge of primal feasibility, giving up. 
Test Failed at REPL[10]:6
  Expression: abs(G - γ) <= 0.001
   Evaluated: 595.502673809033 <= 0.001
ERROR: There was an error during testing

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions