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

Crash 'basis factorization does not exist' #207

Closed
schillic opened this issue Jan 29, 2022 · 2 comments · Fixed by #208
Closed

Crash 'basis factorization does not exist' #207

schillic opened this issue Jan 29, 2022 · 2 comments · Fixed by #208

Comments

@schillic
Copy link
Contributor

We get an error with a simple unbounded problem.

min -x
s.t.
 x + y <=  1
-x - y <= -1

Below is the code. (Not sure if this helps: The original problem triggered the same error as in #116 but in the extracted example the error changed.)

pkg> st
      Status `~/Project.toml`
  [60bf3e95] GLPK v0.15.2
  [b8f27783] MathOptInterface v0.10.7

using GLPK
using MathOptInterface
const MOI = MathOptInterface
optimizer = GLPK.Optimizer(method=GLPK.EXACT)
c = [-1.0, 0]
A = [1.0 1; -1 -1]
b = [1.0, -1]
x = MOI.add_variables(optimizer, 2)

MOI.set(optimizer,
        MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}(),
        MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(c, x), 0.0)
       )
MOI.set(optimizer, MOI.ObjectiveSense(), MOI.MIN_SENSE)
for i in 1:2
    MOI.add_constraint(optimizer,
                       MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(A[i, :], x), 0.0),
                       MOI.LessThan(b[i])
                      )
end
MOI.optimize!(optimizer)
glp_eval_tab_col: basis factorization does not exist
Error detected in file draft/glpapi12.c at line 923

signal (6): Aborted
in expression starting at REPL[12]:1
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
errfunc at /workspace/srcdir/glpk-5.0/src/env/error.c:53
glp_eval_tab_col at /workspace/srcdir/glpk-5.0/src/draft/glpapi12.c:923
glp_eval_tab_col at ~/.julia/packages/GLPK/mQmKc/src/gen/libglpk_api.jl:446 [inlined]
_get_unbounded_ray at ~/.julia/packages/GLPK/mQmKc/src/MOI_wrapper/infeasibility_certificates.jl:102
optimize! at ~/.julia/packages/GLPK/mQmKc/src/MOI_wrapper/MOI_wrapper.jl:1451
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944
eval at ./boot.jl:373 [inlined]
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:150
repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:244
start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:229
#run_repl#47 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:362
run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:349
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
#930 at ./client.jl:394
jfptr_YY.930_32578.clone_1 at ~/programs/julia-1.7.0/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
jl_f__call_latest at /buildworker/worker/package_linux64/build/src/builtins.c:757
#invokelatest#2 at ./essentials.jl:716 [inlined]
invokelatest at ./essentials.jl:714 [inlined]
run_main_repl at ./client.jl:379
exec_options at ./client.jl:309
_start at ./client.jl:495
jfptr__start_43127.clone_1 at ~/programs/julia-1.7.0/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]
true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:559
jl_repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:701
main at /buildworker/worker/package_linux64/build/cli/loader_exe.c:42
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at ~/programs/julia-1.7.0/bin/julia (unknown line)
Allocations: 7661027 (Pool: 7658281; Big: 2746); GC: 8
Aborted (core dumped)
@odow
Copy link
Member

odow commented Jan 30, 2022

Thanks for the report. It looks like I need to re-introduce the error handling code: #206 (comment)

@schillic
Copy link
Contributor Author

Thanks for the prompt fix!

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

Successfully merging a pull request may close this issue.

2 participants