Skip to content

segfault with simple scalar division #3021

Description

@simeonschaub

Running the following reproducer, I get a segfault:

using Reactant, CoolPDLP

x = Reactant.to_rarray(zeros(Float32, 10))
sol = CoolPDLP.PrimalDualSolution(x, copy(x))
step_sizes = CoolPDLP.StepSizes(0f0, 0f0, 0f0)
scratch = CoolPDLP.Scratch(copy(x), copy(x), copy(x))
iteration = CoolPDLP.IterationCounter(0, 0, 0)
err = CoolPDLP.KKTErrors(0f0, 0f0, 0f0, 0f0, 0f0, 0f0)
restart_stats = CoolPDLP.RestartStats(Float32)
stats = CoolPDLP.ConvergenceStats(Float32)
state = CoolPDLP.PDLPState(sol, copy(sol), copy(sol), copy(sol), copy(sol), step_sizes, scratch, iteration, restart_stats, stats)

function foo(state)
    (; step_sizes) = state
    (; η, ω) = step_sizes
    τ, σ = η / ω, η * ω
end

@code_hlo foo(state)
[421794] signal 11 (1): Segmentation fault
in expression starting at /home/simeon/reproducer.jl:19
getproperty at ./Base_compiler.jl:54 [inlined]
#divide#121 at /home/simeon/.julia/packages/Reactant/Jpwhj/src/Ops.jl:578
unknown function (ip: 0x7f25fc796f3d) at (unknown file)
divide at /home/simeon/.julia/packages/Reactant/Jpwhj/src/Ops.jl:573
/ at /home/simeon/.julia/packages/Reactant/Jpwhj/src/TracedRNumber.jl:246 [inlined]
foo at /home/simeon/reproducer.jl:16
unknown function (ip: 0x7f25fc795fc4) at (unknown file)
call_with_reactant at ./none (unknown line) [inlined]
call_with_reactant at /home/simeon/.julia/packages/Reactant/Jpwhj/src/utils.jl:0
unknown function (ip: 0x7f25fc795f17) 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
#make_mlir_fn#4 at /home/simeon/.julia/packages/Reactant/Jpwhj/src/TracedUtils.jl:376
make_mlir_fn at /home/simeon/.julia/packages/Reactant/Jpwhj/src/TracedUtils.jl:299 [inlined]
#compile_mlir!#45 at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Compiler.jl:279
unknown function (ip: 0x7f25fc7507e5) at (unknown file)
compile_mlir! at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Compiler.jl:238
compile_mlir! at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Compiler.jl:238
#compile_mlir#42 at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Compiler.jl:75
compile_mlir at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Compiler.jl:49
unknown function (ip: 0x7f25fc73e702) at (unknown file)
#code_hlo#3 at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Macros.jl:60
code_hlo at /home/simeon/.julia/packages/Reactant/Jpwhj/src/compiler/Macros.jl:47
unknown function (ip: 0x7f25fc736b4a) 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_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:581
eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:558
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
jl_toplevel_eval_flex at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:975
ijl_toplevel_eval at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1047
ijl_toplevel_eval_in at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1092
eval at ./boot.jl:489
include_string at ./loading.jl:2874
_include at ./loading.jl:2934
include at ./Base.jl:307
IncludeInto at ./Base.jl:308
jfptr_IncludeInto_61448.1 at /home/simeon/.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]
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: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/simeon/.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/simeon/.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/simeon/.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
__libc_start_call_main at /lib64/libc.so.6 (unknown line)
__libc_start_main at /lib64/libc.so.6 (unknown line)
unknown function (ip: 0x4010b8) at /workspace/srcdir/glibc-2.17/csu/../sysdeps/x86_64/start.S
Allocations: 38002488 (Pool: 38000038; Big: 2450); GC: 24
Segmentation fault         (core dumped) julia -g2

Versions of CoolPDLP and Reactant are:

  [9e90bdc5] + CoolPDLP v0.1.1
  [3c362404] + Reactant v0.2.269

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions