Skip to content

SegFault Julia 1.11 when providing label_components with a vector #135

@behinger

Description

@behinger

took me a while to figure out, but label_components runs into segfault with vectors.

label_components([4.0, 0.0, 10.0, 0.0, 3.0, 4.0, 0, 4.0, 4.0, 0.0, 0.0, 5.0] .> 0.9)

results in:

[3135306] signal 11 (128): Segmentation fault                              
in expression starting at REPL[8]:1                                        
getindex at ./essentials.jl:917 [inlined]                                                                                                              
find_root! at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:134 [inlined]                                                       
#label_components!#13 at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:95                                                       
label_components! at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:62 [inlined]                                                 
#label_components#11 at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:41 [inlined]                                              
label_components at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:41 [inlined]                                                  
#label_components#10 at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:40 [inlined]                                              
label_components at /home/ehinger/.julia/packages/ImageMorphology/zxdrG/src/connected.jl:40                                                            
unknown function (ip: 0x7ffa5794d1f2)                                                                                                                  
jl_apply at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/julia.h:2157 [inlined]
do_call at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/interpreter.c:126                                                        
eval_value at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/interpreter.c:223                                                     
eval_stmt_value at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/interpreter.c:174 [inlined]                                      
eval_body at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/interpreter.c:663                                                      
jl_interpret_toplevel_thunk at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/interpreter.c:821                                    
jl_toplevel_eval_flex at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/toplevel.c:943                                             
jl_toplevel_eval_flex at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/toplevel.c:886                                             
ijl_toplevel_eval_in at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/toplevel.c:994                                              
eval at ./boot.jl:430 [inlined]                                                                                                                        
eval_user_input at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:245
repl_backend_loop at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:342                  
#start_repl_backend#59 at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:327             
start_repl_backend at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:324                 
#run_repl#72 at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:483                       
run_repl at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:469                           
jfptr_run_repl_10104.1 at /opt/julia-1.11.2/share/julia/compiled/v1.11/REPL/u0gqU_4x0TT.so (unknown line)                                              
#1150 at ./client.jl:446                                                                                                                               
jfptr_YY.1150_14803.1 at /opt/julia-1.11.2/share/julia/compiled/v1.11/REPL/u0gqU_4x0TT.so (unknown line)
jl_apply at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/julia.h:2157 [inlined]                                                  
jl_f__call_latest at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/builtins.c:875                                                 
#invokelatest#2 at ./essentials.jl:1055 [inlined]                                                                                                      
invokelatest at ./essentials.jl:1052 [inlined]                             
run_main_repl at ./client.jl:430                                           
repl_main at ./client.jl:567 [inlined]
_start at ./client.jl:541                                                  
jfptr__start_73406.1 at /opt/julia-1.11.2/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/julia.h:2157 [inlined]
true_main at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/jlapi.c:900                                                            
jl_repl_entrypoint at /cache/build/tester-amdci5-12/julialang/julia-release-1-dot-11/src/jlapi.c:1059                                                  
main at julia (unknown line)                                                                                                                           
unknown function (ip: 0x7ffa6eddfd8f) 
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)        
unknown function (ip: 0x4010b8)                                            
Allocations: 15110511 (Pool: 15107790; Big: 2721); GC: 13
[1]    3135306 segmentation fault (core dumped)  julia    

In earlier Julia versions (I tested 1.8) it results not in SegFault but in StackOverflow. Maybe this is something to catch with a type annotation - it was relatively bothersome to debug.

edit: Strangely, label_components([4.0, 0.0, 10.0] .> 0.9) seems to work...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions