I made some use of Gurobi’s C-API, but in the form of julia function wrappers shipped by Gurobi.jl (the ccalls are defined therein). And on my first fresh run, everything seems normal.
@odow my code is a Benders decomposition on a 2SSP problem. On my first fresh run the algorithm appears to be normal
julia> for k=1:20
multi_solve(tks, sub, mst)
proceed, vioMean, ub = bwd_in_sequential(sub, mst, common)
lb, common = get_trial!(mst)
agap = ub - lb
rgap = agap/ub
println("lb = $lb, agap = $agap, vioMean=$vioMean, rgap = $rgap")
end
lb = 5800.542489373332, agap = 13016.850062323694, vioMean=13016.850062323696, rgap = 0.6917456829665694
lb = 5800.542489373333, agap = 287.49409274634036, vioMean=287.4940927463401, rgap = 0.04722279323857864
lb = 5800.542489373333, agap = 90.50753003175123, vioMean=90.50753003175153, rgap = 0.015363565023827663
lb = 5800.542489373334, agap = 69.28624517584831, vioMean=69.28624517584983, rgap = 0.011803793314792456
lb = 5800.542489373334, agap = 41.59680711598503, vioMean=41.59680711598685, rgap = 0.007120132712511929
lb = 5801.660608885939, agap = 86.74651366101898, vioMean=87.86463317362389, rgap = 0.014731745250572593
lb = 5803.019760603801, agap = 44.489640759772556, vioMean=45.84879247763274, rgap = 0.00760830598226966
lb = 5806.637099984512, agap = 18.761448730376287, vioMean=22.378788111087488, rgap = 0.0032206292107713652
lb = 5807.112082577849, agap = 10.513653992418767, vioMean=10.988636585756467, rgap = 0.0018072070065162018
lb = 5809.057606162431, agap = 17.796139043714902, vioMean=19.74166262829719, rgap = 0.0030541592121401877
lb = 5809.358171007881, agap = 6.380721145800635, vioMean=6.681285991249145, rgap = 0.0010971471147731891
lb = 5809.73359846487, agap = 4.264219228016373, vioMean=4.6396466850067855, rgap = 0.000733440114999648
lb = 5810.111134613399, agap = 2.222963515127958, vioMean=2.6004996636587143, rgap = 0.0003824562521008065
lb = 5810.548465937093, agap = 0.8144561931358112, vioMean=1.2517875168329435, rgap = 0.00014014891240646555
lb = 5810.637842505216, agap = 2.186196595058391, vioMean=2.275573163182647, rgap = 0.0003760988773017765
lb = 5810.731899858052, agap = 0.30446845109236165, vioMean=0.3985258039310793, rgap = 5.23948624298412e-5
lb = 5810.794026566477, agap = 1.153930180745192, vioMean=1.216056889169522, rgap = 0.0001985444792921052
lb = 5810.805877360574, agap = 0.4342613856706521, vioMean=0.4461121797700495, rgap = 7.472783352648415e-5
lb = 5810.813777252803, agap = 0.10374402782144898, vioMean=0.1116439200516955, rgap = 1.7853295532335417e-5
lb = 5810.817069648572, agap = 0.09195715511395974, vioMean=0.0952495508836364, rgap = 1.5824917356267948e-5
So I think the ccalls are working properly.
But when I drop my code for the 2nd time to the same REPL it just crashes…
Here is another scene of crash
julia> const mst = build_2ssp!(sub, t, T, tks);
here, before >>
[2927051] signal 11 (128): Segmentation fault
in expression starting at REPL[30]:1
jl_svecref at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:1309 [inlined]
jl_is_va_tuple at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia_internal.h:1169 [inlined]
obviously_unequal at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/subtype.c:466
ijl_types_equal at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/subtype.c:2325
jl_smallintset_lookup at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/smallintset.c:137
jl_specializations_get_linfo_ at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:183
cache_method at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:1587
jl_mt_assoc_by_type at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:1869
jl_lookup_generic_ at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:4176 [inlined]
ijl_apply_generic at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/gf.c:4210
#mst!#126 at /home/amd/julia_projects/uc/Uc/src/General.jl:337
mst! at /home/amd/julia_projects/uc/Uc/src/General.jl:205
unknown function (ip: 0x74082d5de7b4) at (unknown file)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f__apply_iterate at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:868
model! at /home/amd/julia_projects/uc/Uc/src/General.jl:12
macro expansion at ./timing.jl:697 [inlined]
build_2ssp! at ./REPL[9]:10
unknown function (ip: 0x74082d55a854) at (unknown file)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
do_call at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:123
eval_value at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:243
eval_stmt_value at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:194 [inlined]
eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:707
jl_interpret_toplevel_thunk at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:898
jl_toplevel_eval_flex at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1035
__repl_entry_eval_expanded_with_loc at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:301
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:881
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:308
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:312
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:312
toplevel_eval_with_hooks at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:305 [inlined]
eval_user_input at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:330
repl_backend_loop at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:452
#start_repl_backend#41 at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:427
start_repl_backend at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:424 [inlined]
#run_repl#50 at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:653
run_repl at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/REPL/src/REPL.jl:639
jfptr_run_repl_19665.1 at /home/amd/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/share/julia/compiled/v1.12/REPL/u0gqU_E4m7X.so (unknown line)
run_std_repl at ./client.jl:478
jfptr_run_std_repl_24985.1 at /home/amd/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:881
run_main_repl at ./client.jl:499
repl_main at ./client.jl:586 [inlined]
_start at ./client.jl:561
jfptr__start_63319.1 at /home/amd/.julia/juliaup/julia-1.12.6+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
true_main at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/jlapi.c:971
jl_repl_entrypoint at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/jlapi.c:1139
main at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/cli/loader_exe.c:58
unknown function (ip: 0x7411b082a1c9) at /lib/x86_64-linux-gnu/libc.so.6
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4010b8) at /workspace/srcdir/glibc-2.17/csu/../sysdeps/x86_64/start.S
Allocations: 93899468 (Pool: 93898934; Big: 534); GC: 46
./j: line 1: 2927051 Segmentation fault (core dumped) julia --project=. --threads=255,1
usr@usr:~/julia_projects/uc/Uc$
I have no idea where is going wrong. You can take a look at my code if you have free time. Thanks.
The fortunate thing is that currently it won’t crash on my first-time fresh run so I can proceed developing my algorithm.