Skip to content

Segfault when loading conflicting @ccallable names from multiple pkgimages #54878

@topolarity

Description

@topolarity
$ cat Foo/src/Foo.jl
module Foo
Base.@ccallable function foo()::Cint
    return 0
end
end
$ cat Bar/src/Bar.jl
module Bar
Base.@ccallable function foo()::Cint
    return 0
end
end

I would have expected ERROR: @ccallable was already defined for this method name, but instead I get:

$ julia +1.10 -q -e "using Foo; using Bar;"

[1660150] signal (11.1): Segmentation fault
in expression starting at none:1
end<llvm::ArrayRef<llvm::SubtargetSubTypeKV> > at /usr/local/x86_64-linux-gnu/include/c++/9.1.0/bits/range_access.h:79 [inlined]
adl_end<const llvm::ArrayRef<llvm::SubtargetSubTypeKV>&> at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/usr/include/llvm/ADT/STLExtras.h:237 [inlined]
adl_end<const llvm::ArrayRef<llvm::SubtargetSubTypeKV>&> at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/usr/include/llvm/ADT/STLExtras.h:257 [inlined]
lower_bound<const llvm::ArrayRef<llvm::SubtargetSubTypeKV>&, llvm::StringRef&> at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/usr/include/llvm/ADT/STLExtras.h:1737 [inlined]
isCPUStringValid at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/usr/include/llvm/MC/MCSubtargetInfo.h:229 [inlined]
createTargetMachine at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/jitlayers.cpp:1082 [inlined]
JuliaOJIT at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/jitlayers.cpp:1429
jl_generate_ccallable at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/codegen.cpp:6789
jl_compile_extern_c_impl at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/jitlayers.cpp:392
jl_compile_extern at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/staticdata.c:2126 [inlined]
jl_reinit_ccallable at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/staticdata.c:2138 [inlined]
jl_restore_package_image_from_stream at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/staticdata.c:3451
jl_restore_incremental_from_buf at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/staticdata.c:3486
ijl_restore_package_image_from_file at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/staticdata.c:3570
_include_from_serialized at ./loading.jl:1058
_require_search_from_serialized at ./loading.jl:1581
_require at ./loading.jl:1938
__require_prelocked at ./loading.jl:1812
jfptr___require_prelocked_80768.1 at /home/topolarity/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:2895 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:3077
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/julia.h:1982 [inlined]
jl_f__call_in_world at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/builtins.c:831
#invoke_in_world#3 at ./essentials.jl:926 [inlined]
invoke_in_world at ./essentials.jl:923 [inlined]
_require_prelocked at ./loading.jl:1803
macro expansion at ./loading.jl:1790 [inlined]
macro expansion at ./lock.jl:267 [inlined]
__require at ./loading.jl:1753
jfptr___require_80733.1 at /home/topolarity/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:2895 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:3077
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/julia.h:1982 [inlined]
jl_f__call_in_world at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/builtins.c:831
#invoke_in_world#3 at ./essentials.jl:926 [inlined]
invoke_in_world at ./essentials.jl:923 [inlined]
require at ./loading.jl:1746
jfptr_require_80730.1 at /home/topolarity/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:2895 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:3077
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/julia.h:1982 [inlined]
call_require at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/toplevel.c:481 [inlined]
eval_import_path at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/toplevel.c:518
jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/toplevel.c:752
jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/toplevel.c:877
jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/toplevel.c:877
ijl_toplevel_eval_in at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/toplevel.c:985
eval at ./boot.jl:385 [inlined]
exec_options at ./client.jl:291
_start at ./client.jl:552
jfptr__start_82729.1 at /home/topolarity/.julia/juliaup/julia-1.10.4+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
_jl_invoke at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:2895 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/gf.c:3077
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/julia.h:1982 [inlined]
true_main at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/jlapi.c:582
jl_repl_entrypoint at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/src/jlapi.c:731
main at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-10/cli/loader_exe.c:58
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x4010b8)
Allocations: 2908 (Pool: 2899; Big: 9); GC: 0
Segmentation fault

Crashes in Julia 1.10 and 1.11 - working on 1.9

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIndicates an unexpected problem or unintended behavior

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions