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

Building nightly with multiple Julia GC threads causes segfault #50327

Closed
oscardssmith opened this issue Jun 28, 2023 · 5 comments · Fixed by #50332
Closed

Building nightly with multiple Julia GC threads causes segfault #50327

oscardssmith opened this issue Jun 28, 2023 · 5 comments · Fixed by #50332

Comments

@oscardssmith
Copy link
Member

building Julia today (but not yesterday) I'm seeing a segfault. My guess is #48969 is to blame.

    LINK usr/lib/libjulia-codegen.so
    JULIA usr/lib/julia/corecompiler.ji

[72883] signal (11.1): Segmentation fault
in expression starting at iterators.jl:1004
ws_queue_push at /home/oscardssmith/Documents/Code/julia/src/work-stealing-queue.h:45 [inlined]
gc_ptr_queue_push at /home/oscardssmith/Documents/Code/julia/src/gc.c:1729 [inlined]
gc_try_claim_and_push at /home/oscardssmith/Documents/Code/julia/src/gc.c:1809
gc_queue_thread_local at /home/oscardssmith/Documents/Code/julia/src/gc.c:2850 [inlined]
_jl_gc_collect at /home/oscardssmith/Documents/Code/julia/src/gc.c:3102
ijl_gc_collect at /home/oscardssmith/Documents/Code/julia/src/gc.c:3436
maybe_collect at /home/oscardssmith/Documents/Code/julia/src/gc.c:913 [inlined]
jl_gc_pool_alloc_inner at /home/oscardssmith/Documents/Code/julia/src/gc.c:1263
jl_gc_pool_alloc_noinline at /home/oscardssmith/Documents/Code/julia/src/gc.c:1332 [inlined]
jl_gc_alloc_ at /home/oscardssmith/Documents/Code/julia/src/julia_internal.h:466 [inlined]
jl_gc_alloc at /home/oscardssmith/Documents/Code/julia/src/gc.c:3484
_new_array_ at /home/oscardssmith/Documents/Code/julia/src/array.c:134 [inlined]
_new_array at /home/oscardssmith/Documents/Code/julia/src/array.c:198 [inlined]
ijl_alloc_array_1d at /home/oscardssmith/Documents/Code/julia/src/array.c:436
jl_exprn at /home/oscardssmith/Documents/Code/julia/src/builtins.c:1416
scm_to_julia_ at /home/oscardssmith/Documents/Code/julia/src/ast.c:600
scm_to_julia_ at /home/oscardssmith/Documents/Code/julia/src/ast.c:604
scm_to_julia_ at /home/oscardssmith/Documents/Code/julia/src/ast.c:604
scm_to_julia_ at /home/oscardssmith/Documents/Code/julia/src/ast.c:604
scm_to_julia at /home/oscardssmith/Documents/Code/julia/src/ast.c:435
jl_call_scm_on_ast_and_loc at /home/oscardssmith/Documents/Code/julia/src/ast.c:862
ijl_expand_stmt_with_loc at /home/oscardssmith/Documents/Code/julia/src/ast.c:1315
jl_eval_module_expr at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:213 [inlined]
jl_toplevel_eval_flex at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:736
jl_parse_eval_all at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:1068
ijl_load_ at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:1115
unknown function (ip: 0x7f99f81696b9)
unknown function (ip: 0x7f99f81695dd)
jl_apply at /home/oscardssmith/Documents/Code/julia/src/julia.h:1963 [inlined]
do_call at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:125
eval_value at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:222
eval_stmt_value at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:173 [inlined]
eval_body at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:620
jl_interpret_toplevel_thunk at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:760
jl_toplevel_eval_flex at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:934
jl_eval_module_expr at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:215 [inlined]
jl_toplevel_eval_flex at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:736
ijl_toplevel_eval_in at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:993
unknown function (ip: 0x7f99f8168a19)
jl_apply at /home/oscardssmith/Documents/Code/julia/src/julia.h:1963 [inlined]
do_call at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:125
eval_value at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:222
eval_stmt_value at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:173 [inlined]
eval_body at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:620
jl_interpret_toplevel_thunk at /home/oscardssmith/Documents/Code/julia/src/interpreter.c:760
jl_toplevel_eval_flex at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:934
jl_parse_eval_all at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:1068
ijl_load_ at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:1115
ijl_load at /home/oscardssmith/Documents/Code/julia/src/toplevel.c:1128
exec_program at /home/oscardssmith/Documents/Code/julia/src/jlapi.c:541
true_main at /home/oscardssmith/Documents/Code/julia/src/jlapi.c:594
jl_repl_entrypoint at /home/oscardssmith/Documents/Code/julia/src/jlapi.c:731
main at /home/oscardssmith/Documents/Code/julia/cli/loader_exe.c:58
unknown function (ip: 0x7f9a046f2d8f)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_start at /home/oscardssmith/Documents/Code/julia/usr/bin/julia (unknown line)
Allocations: 841816 (Pool: 841733; Big: 83); GC: 0
Segmentation fault (core dumped)
make[1]: *** [sysimage.mk:61: /home/oscardssmith/Documents/Code/julia/usr/lib/julia/corecompiler.ji] Error 139
make: *** [Makefile:97: julia-sysimg-ji] Error 2
@oscardssmith
Copy link
Member Author

@d-netto @vchuravy

@d-netto
Copy link
Member

d-netto commented Jun 28, 2023

In what platform (e.g. architecture+ OS) is this happening?

@oscardssmith
Copy link
Member Author

oscardssmith commented Jun 28, 2023

x86/64 linux (Zen2 cpu if it matters)

@CodeLenz
Copy link

The same here, Linux, AMD Ryzen Threadripper 3970X, gcc version 13.1.1 20230614 (Red Hat 13.1.1-4)

@oscardssmith
Copy link
Member Author

Ok. I've done some digging and it appears this only happens if you have more than 1 mark thread during bootstrap. Switching from JULIA_NUM_THREADS=6 to JULIA_NUM_THREADS=1,0 fixed this (as does adding JULIA_NUM_GC_THREADS=1,6) so the specific problem appears to happen if you bootstrap with multiple mark threads.

@oscardssmith oscardssmith changed the title Building nightly gives GC segfault Building nightly with multiple Julia GC threads causes segfault Jun 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants