Skip to content

[Julia 1.12] ASAN failure #170

@vchuravy

Description

@vchuravy

Perhaps related to #169 while running the testsute under ASAN.

=================================================================
==3160185==ERROR: AddressSanitizer: heap-use-after-free on address 0x51f001314800 at pc 0x7f88eeba2cb2 bp 0x7f88e39ffbf0 sp 0x7f88e39ffbe8
WRITE of size 8 at 0x51f001314800 thread T2
    #0 0x7f88eeba2cb1  (<unknown module>)
    #1 0x7f88eeb9eb00  (<unknown module>)
    #2 0x7f88ee3420b5  (<unknown module>)
    #3 0x7f88ee342243  (<unknown module>)
    #4 0x7f89754e4e1a in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:4010:23
    #5 0x7f897555a0d5 in jl_apply /home/vchuravy/src/julia-1.12/src/julia.h:2391:12
    #6 0x7f897555a0d5 in _start_task /home/vchuravy/src/julia-1.12/src/task.c:1249:19

0x51f001314800 is located 896 bytes inside of 3376-byte region [0x51f001314480,0x51f0013151b0)
freed by thread T0 here:
    #0 0x7f8978d728c7 in operator delete(void*, unsigned long) /workspace/srcdir/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:155:3
    #1 0x7f897487b7d1 in std::default_delete<llvm::LLVMContext>::operator()(llvm::LLVMContext*) const /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:92:2
    #2 0x7f897487b7d1 in std::unique_ptr<llvm::LLVMContext, std::default_delete<llvm::LLVMContext>>::~unique_ptr() /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/unique_ptr.h:398:4
    #3 0x7f897487b7d1 in llvm::orc::ThreadSafeContext::State::~State() /home/vchuravy/src/julia-1.12/asan/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:31:10
    #4 0x7f897487b7d1 in void std::_Destroy<llvm::orc::ThreadSafeContext::State>(llvm::orc::ThreadSafeContext::State*) /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/stl_construct.h:166:19
    #5 0x7f897487b7d1 in void std::allocator_traits<std::allocator<void>>::destroy<llvm::orc::ThreadSafeContext::State>(std::allocator<void>&, llvm::orc::ThreadSafeContext::State*) /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/alloc_traits.h:819:4
    #6 0x7f897487b7d1 in std::_Sp_counted_ptr_inplace<llvm::orc::ThreadSafeContext::State, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/shared_ptr_base.h:615:2
    #7 0x7f89748128ec in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/shared_ptr_base.h:345:8
    #8 0x7f89748128ec in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/shared_ptr_base.h:1069:11
    #9 0x7f89748128ec in std::__shared_ptr<llvm::orc::ThreadSafeContext::State, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/bits/shared_ptr_base.h:1531:31
    #10 0x7f89748128ec in llvm::orc::ThreadSafeContext::~ThreadSafeContext() /home/vchuravy/src/julia-1.12/asan/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:29:7
    #11 0x7f89748128ec in llvm::orc::ThreadSafeModule::~ThreadSafeModule() /home/vchuravy/src/julia-1.12/asan/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:118:3
    #12 0x7f89748537b5 in jl_compile_codeinst_now(_jl_code_instance_t*) /home/vchuravy/src/julia-1.12/src/jitlayers.cpp:626:13
    #13 0x7f897485134a in jl_compile_codeinst_impl /home/vchuravy/src/julia-1.12/src/jitlayers.cpp:824:9
    #14 0x7f89754de8f8 in jl_compile_method_internal /home/vchuravy/src/julia-1.12/src/gf.c:3524:27
    #15 0x7f89754e4dae in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:4002:16
    #16 0x7f897554ddd9 in jl_apply /home/vchuravy/src/julia-1.12/src/julia.h:2391:12
    #17 0x7f897554ddd9 in do_call /home/vchuravy/src/julia-1.12/src/interpreter.c:123:26
    #18 0x7f897554a904 in eval_value /home/vchuravy/src/julia-1.12/src/interpreter.c:243:16
    #19 0x7f8975545cfd in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:581:35
    #20 0x7f8975548b12 in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:558:21
    #21 0x7f8975548b12 in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:558:21
    #22 0x7f8975549ad7 in jl_interpret_toplevel_thunk /home/vchuravy/src/julia-1.12/src/interpreter.c:898:21
    #23 0x7f89755a58e2 in jl_toplevel_eval_flex /home/vchuravy/src/julia-1.12/src/toplevel.c:1035:18
    #24 0x7f89755a568d in jl_toplevel_eval_flex /home/vchuravy/src/julia-1.12/src/toplevel.c:975:19
    #25 0x7f89755aab47 in ijl_toplevel_eval /home/vchuravy/src/julia-1.12/src/toplevel.c:1047:12
    #26 0x7f89755aab47 in ijl_toplevel_eval_in /home/vchuravy/src/julia-1.12/src/toplevel.c:1092:13
    #27 0x7f8962ea4ac1 in julia_eval_13342 boot.jl:489
    #28 0x7f89633e0f2c in japi1_include_string_20887 loading.jl:2870
    #29 0x7f89754e4ef7 in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:3991:35
    #30 0x7f8963388d2f in japi1__include_4182 loading.jl:2930
    #31 0x7f8962fca08b in japi1_include_25978 Base.jl:307
    #32 0x7f8960c072f8 in julia_IncludeInto_29365 Base.jl:308
    #33 0x7f896320ab70 in jfptr_IncludeInto_29366 (/home/vchuravy/src/julia-1.12/asan/usr/lib/julia/sys.so+0x2c0ab70)
    #34 0x7f89754e4ef7 in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:3991:35
    #35 0x7f897554ddd9 in jl_apply /home/vchuravy/src/julia-1.12/src/julia.h:2391:12
    #36 0x7f897554ddd9 in do_call /home/vchuravy/src/julia-1.12/src/interpreter.c:123:26
    #37 0x7f897554a904 in eval_value /home/vchuravy/src/julia-1.12/src/interpreter.c:243:16
    #38 0x7f897554731e in eval_stmt_value /home/vchuravy/src/julia-1.12/src/interpreter.c:194:23
    #39 0x7f897554731e in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:689:21
    #40 0x7f8975549ad7 in jl_interpret_toplevel_thunk /home/vchuravy/src/julia-1.12/src/interpreter.c:898:21
    #41 0x7f89755a58e2 in jl_toplevel_eval_flex /home/vchuravy/src/julia-1.12/src/toplevel.c:1035:18
    #42 0x7f89755a568d in jl_toplevel_eval_flex /home/vchuravy/src/julia-1.12/src/toplevel.c:975:19

previously allocated by thread T0 here:
reset_threads!:     #0 0x7f8978d71aa7 in operator new(unsigned long) /workspace/srcdir/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:86:3
    #1 0x7f896e351062 in llvm::LLVMContext::LLVMContext() (/home/vchuravy/src/julia-1.12/asan/usr/bin/../lib/libLLVM.so.18.1jl+0xb51062) (BuildId: cf2f99f2cab0f3c0db67806ed59efaa351c8c977)
    #2 0x7f89754dd4f8 in jl_add_codeinst_to_jit /home/vchuravy/src/julia-1.12/src/gf.c:3372:5
    #3 0x7f89627c8a20 in julia_add_codeinsts_to_jitNOT._73583 ../asan/usr/share/julia/Compiler/src/typeinfer.jl:1429
    #4 0x7f8960ca4cd5 in typeinf_ext_toplevel ../asan/usr/share/julia/Compiler/src/typeinfer.jl:1436
    #5 0x7f8960ca4cd5 in julia_typeinf_ext_toplevel_75706 ../asan/usr/share/julia/Compiler/src/typeinfer.jl:1444
    #6 0x7f8962a73e5a in jfptr_typeinf_ext_toplevel_75707 (/home/vchuravy/src/julia-1.12/asan/usr/lib/julia/sys.so+0x2473e5a)
    #7 0x7f89754e4ef7 in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:3991:35
    #8 0x7f89754c285e in jl_apply /home/vchuravy/src/julia-1.12/src/julia.h:2391:12
    #9 0x7f89754c285e in jl_type_infer /home/vchuravy/src/julia-1.12/src/gf.c:462:35
    #10 0x7f89754de776 in jl_compile_method_internal /home/vchuravy/src/julia-1.12/src/gf.c:3512:24
    #11 0x7f89754e4dae in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:4002:16
    #12 0x7f897554ddd9 in jl_apply /home/vchuravy/src/julia-1.12/src/julia.h:2391:12
    #13 0x7f897554ddd9 in do_call /home/vchuravy/src/julia-1.12/src/interpreter.c:123:26
    #14 0x7f897554a904 in eval_value /home/vchuravy/src/julia-1.12/src/interpreter.c:243:16
    #15 0x7f8975545cfd in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:581:35
    #16 0x7f8975548b12 in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:558:21
    #17 0x7f8975548b12 in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:558:21
    #18 0x7f8975549ad7 in jl_interpret_toplevel_thunk /home/vchuravy/src/julia-1.12/src/interpreter.c:898:21
    #19 0x7f89755a58e2 in jl_toplevel_eval_flex /home/vchuravy/src/julia-1.12/src/toplevel.c:1035:18
    #20 0x7f89755a568d in jl_toplevel_eval_flex /home/vchuravy/src/julia-1.12/src/toplevel.c:975:19
    #21 0x7f89755aab47 in ijl_toplevel_eval /home/vchuravy/src/julia-1.12/src/toplevel.c:1047:12
    #22 0x7f89755aab47 in ijl_toplevel_eval_in /home/vchuravy/src/julia-1.12/src/toplevel.c:1092:13
    #23 0x7f8962ea4ac1 in julia_eval_13342 boot.jl:489
    #24 0x7f89633e0f2c in japi1_include_string_20887 loading.jl:2870
    #25 0x7f89754e4ef7 in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:3991:35
    #26 0x7f8963388d2f in japi1__include_4182 loading.jl:2930
    #27 0x7f8962fca08b in japi1_include_25978 Base.jl:307
    #28 0x7f8960c072f8 in julia_IncludeInto_29365 Base.jl:308
    #29 0x7f896320ab70 in jfptr_IncludeInto_29366 (/home/vchuravy/src/julia-1.12/asan/usr/lib/julia/sys.so+0x2c0ab70)
    #30 0x7f89754e4ef7 in _jl_invoke /home/vchuravy/src/julia-1.12/src/gf.c:3991:35
    #31 0x7f897554ddd9 in jl_apply /home/vchuravy/src/julia-1.12/src/julia.h:2391:12
    #32 0x7f897554ddd9 in do_call /home/vchuravy/src/julia-1.12/src/interpreter.c:123:26
    #33 0x7f897554a904 in eval_value /home/vchuravy/src/julia-1.12/src/interpreter.c:243:16
    #34 0x7f897554731e in eval_stmt_value /home/vchuravy/src/julia-1.12/src/interpreter.c:194:23
    #35 0x7f897554731e in eval_body /home/vchuravy/src/julia-1.12/src/interpreter.c:689:21

Thread T2 created by T0 here:
    #0 0x7f8978d46701 in pthread_create /workspace/srcdir/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:250:3
    #1 0x7f897576d505 in uv_thread_create_ex /workspace/srcdir/libuv/src/unix/thread.c:172
    #2 0x7f897576d3ff in uv_thread_create /workspace/srcdir/libuv/src/unix/thread.c:126
    #3 0x7f89755f6fe9 in jl_start_threads /home/vchuravy/src/julia-1.12/src/threading.c:868:9
    #4 0x7f8975554965 in _finish_jl_init_ /home/vchuravy/src/julia-1.12/src/init.c:611:5
    #5 0x7f89755541f8 in ijl_init_ /home/vchuravy/src/julia-1.12/src/init.c:776:5
    #6 0x7f897561fa4e in jl_repl_entrypoint /home/vchuravy/src/julia-1.12/src/jlapi.c:1132:5
    #7 0x55e2c68be61d in main /home/vchuravy/src/julia-1.12/cli/loader_exe.c:58:15

SUMMARY: AddressSanitizer: heap-use-after-free (<unknown module>) 
Shadow bytes around the buggy address:
  0x51f001314580: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314600: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314680: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x51f001314800:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314980: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314a00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x51f001314a80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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