JuliaSmoothOptimizers / JuliaSmoothOptimizers/HSL.jl

Segfault with `ma57_solve`

Open
#211 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
47
Forks
19
PR merge metrics
No merged PRs in 30d

Description

I tried to solve some sparse systems with `ma57_solve`, but occasionally, it segfaults. If I execute a simple file with
```julia
using HSL
using SparseArrays
using LinearAlgebra

n = 500
A = sparse(1.0*I, n, n)
b = randn(n)
ma57_solve(A, b)
```
it spits out
```
[19270] signal (11.1): Segmentation fault
in expression starting at /tmp/test.jl:8
ma57xd_ at /opt/HSL_jll.jl/HSL_jll.jl-2023.11.7/override/lib/x86_64-linux-gnu-libgfortran5/libhsl.so (unknown line)
ma57cd_ at /opt/HSL_jll.jl/HSL_jll.jl-2023.11.7/override/lib/x86_64-linux-gnu-libgfortran5/libhsl.so (unknown line)
ma57cd at /home/wachsmut/.julia/packages/HSL/YVjOf/src/Fortran/ma57.jl:19
#ma57_solve!#22 at /home/wachsmut/.julia/packages/HSL/YVjOf/src/hsl_ma57.jl:463
ma57_solve! at /home/wachsmut/.julia/packages/HSL/YVjOf/src/hsl_ma57.jl:456 [inlined]
#ma57_solve#20 at /home/wachsmut/.julia/packages/HSL/YVjOf/src/hsl_ma57.jl:429 [inlined]
ma57_solve at /home/wachsmut/.julia/packages/HSL/YVjOf/src/hsl_ma57.jl:427 [inlined]
ma57_solve at /home/wachsmut/.julia/packages/HSL/YVjOf/src/hsl_ma57.jl:628
unknown function (ip: 0x7f441c110376)
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
jl_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1880 [inlined]
do_call at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:126
eval_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:226
eval_stmt_value at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:177 [inlined]
eval_body at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:624
jl_interpret_toplevel_thunk at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/interpreter.c:762
jl_toplevel_eval_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:912
jl_toplevel_eval_flex at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:856
ijl_toplevel_eval_in at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/toplevel.c:971
eval at ./boot.jl:370 [inlined]
include_string at ./loading.jl:1903
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
_include at ./loading.jl:1963
include at ./Base.jl:457
jfptr_include_35036.clone_1 at /opt/julia-1.9.3/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
exec_options at ./client.jl:307
_start at ./client.jl:522
jfptr__start_40034.clone_1 at /opt/julia-1.9.3/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2758 [inlined]
ijl_apply_generic at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/gf.c:2940
jl_apply at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/julia.h:1880 [inlined]
true_main at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jlapi.c:573
jl_repl_entrypoint at /cache/build/default-amdci5-5/julialang/julia-release-1-dot-9/src/jlapi.c:717
main at julia (unknown line)
unknown function (ip: 0x7f443387ad8f)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4010b8)
Allocations: 1960640 (Pool: 1958804; Big: 1836); GC: 3
Segmentation fault (core dumped)
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the supplied Julia example and start with the ma57_solve call path in src/hsl_ma57.jl, then inspect the Fortran wrapper at src/Fortran/ma57.jl:19. Trace the failing invocation reported in the stack trace; done means the example completes without a segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.