CSDP.jl icon indicating copy to clipboard operation
CSDP.jl copied to clipboard

Test failures

Open blegat opened this issue 3 years ago • 2 comments

There are weird issues detected by Github Actions on Mac OS: https://github.com/jump-dev/CSDP.jl/blob/53b41fbdcb4601d75f07a4461b5f89a43367a0b7/test/MOI_wrapper.jl#L104-L132 Could someone with a mac take a look ?

blegat avatar Feb 27 '22 21:02 blegat

I mean, CSDP is just unreliable:

julia> MOI.empty!(model)

julia> MOI.Test.test_objective_ObjectiveFunction_blank(model, config)
CSDP 6.2.0
This is a pure primal feasibility problem.
Iter:  0 Ap: 0.00e+00 Pobj:  0.0000000e+00 Ad: 0.00e+00 Dobj:  0.0000000e+00 
Failure: return code is 9 
Primal objective value: 0.0000000e+00 
Dual objective value: 0.0000000e+00 
Relative primal infeasibility: 1.50e+00 
Relative dual infeasibility: 1.73e+01 
Real Relative Gap: 0.00e+00 
XZ Relative Gap: 8.94e+155 
DIMACS error measures: 1.50e+00 0.00e+00 2.41e+01 0.00e+00 0.00e+00 8.94e+155
Test Failed at /Users/oscar/.julia/packages/MathOptInterface/Ohzb2/src/Test/test_objective.jl:200
  Expression: MOI.get(model, MOI.TerminationStatus()) == config.optimal_status
   Evaluated: MathOptInterface.NUMERICAL_ERROR == MathOptInterface.OPTIMAL
ERROR: There was an error during testing

julia> MOI.empty!(model)

julia> MOI.Test.test_objective_ObjectiveFunction_blank(model, config)
CSDP 6.2.0
This is a pure primal feasibility problem.
Iter:  0 Ap: 0.00e+00 Pobj:  0.0000000e+00 Ad: 0.00e+00 Dobj:  0.0000000e+00 
Iter:  1 Ap: 8.10e-01 Pobj:  0.0000000e+00 Ad: 9.00e-01 Dobj: -3.5004939e+01 
Iter:  2 Ap: 1.09e-01 Pobj:  0.0000000e+00 Ad: 9.00e-01 Dobj: -2.3002175e+03 
Iter:  3 Ap: 1.33e-02 Pobj:  0.0000000e+00 Ad: 9.00e-01 Dobj: -1.1473294e+07 
Declaring primal infeasibility.
Success: SDP is primal infeasible
Certificate of primal infeasibility: a'*y=-1.00000e+00, ||A'(y)-Z||=1.50964e-09
Test Failed at /Users/oscar/.julia/packages/MathOptInterface/Ohzb2/src/Test/test_objective.jl:200
  Expression: MOI.get(model, MOI.TerminationStatus()) == config.optimal_status
   Evaluated: MathOptInterface.INFEASIBLE == MathOptInterface.OPTIMAL
ERROR: There was an error during testing

julia> MOI.empty!(model)

julia> MOI.Test.test_objective_ObjectiveFunction_blank(model, config)
CSDP 6.2.0
This is a pure primal feasibility problem.
Iter:  0 Ap: 0.00e+00 Pobj:  0.0000000e+00 Ad: 0.00e+00 Dobj:  0.0000000e+00 
Iter:  1 Ap: 1.00e+00 Pobj:  0.0000000e+00 Ad: 9.00e-01 Dobj:  4.4052605e+78 
Success: SDP solved
Primal objective value: 0.0000000e+00 
Dual objective value: 0.0000000e+00 
Relative primal infeasibility: 0.00e+00 
Relative dual infeasibility: 7.56e-89 
Real Relative Gap: 0.00e+00 
XZ Relative Gap: 5.00e-11 
DIMACS error measures: 0.00e+00 0.00e+00 1.05e-88 0.00e+00 0.00e+00 5.00e-11

odow avatar Oct 25 '22 22:10 odow

Because this is non-deterministic, we must be screwing up the C code somewhere with uninitialized memory.

Why is the C interface so convoluted?

odow avatar Oct 25 '22 22:10 odow