-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Segfault when loading conflicting @ccallable
names from multiple pkgimages
#54878
Labels
bug
Indicates an unexpected problem or unintended behavior
Comments
topolarity
added a commit
to topolarity/julia
that referenced
this issue
Sep 19, 2024
This turns the existing segfault into an error: ```julia julia> using Foo, Bar ERROR: @ccallable: symbol 'foo' conflicts with existing symbol Stacktrace: [1] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{…}, ignore_native::Nothing; register::Bool) @ Base ./loading.jl:1241 [2] _include_from_serialized (repeats 2 times) @ ./loading.jl:1206 [inlined] [3] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{…}, DEPOT_PATH::Vector{…}) @ Base ./loading.jl:2018 [4] _require(pkg::Base.PkgId, env::String) @ Base ./loading.jl:2477 [5] __require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:2343 [6] #invoke_in_world#2 @ ./essentials.jl:1082 [inlined] [7] invoke_in_world @ ./essentials.jl:1079 [inlined] [8] _require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:2330 [9] macro expansion @ ./loading.jl:2269 [inlined] [10] macro expansion @ ./lock.jl:287 [inlined] [11] __require(into::Module, mod::Symbol) @ Base ./loading.jl:2226 [12] #invoke_in_world#2 @ ./essentials.jl:1082 [inlined] [13] invoke_in_world @ ./essentials.jl:1079 [inlined] [14] require(into::Module, mod::Symbol) @ Base ./loading.jl:2219 Some type information was truncated. Use `show(err)` to see complete types. ``` Ideally the loading code would know to anticipate this and display a better error to the user (w/o the useless stack-trace) Resolves JuliaLang#54878, although we may wish to make this a warning or provide an alternative `using` / `import` pathway that can allow `@ccallable` registration to fail.
topolarity
added a commit
to topolarity/julia
that referenced
this issue
Sep 19, 2024
This turns the existing segfault into an error: ```julia julia> using Foo, Bar ERROR: @ccallable: symbol 'foo' conflicts with existing symbol Stacktrace: [1] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{…}, ignore_native::Nothing; register::Bool) @ Base ./loading.jl:1241 [2] _include_from_serialized (repeats 2 times) @ ./loading.jl:1206 [inlined] [3] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{…}, DEPOT_PATH::Vector{…}) @ Base ./loading.jl:2018 [4] _require(pkg::Base.PkgId, env::String) @ Base ./loading.jl:2477 [5] __require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:2343 [6] #invoke_in_world#2 @ ./essentials.jl:1082 [inlined] [7] invoke_in_world @ ./essentials.jl:1079 [inlined] [8] _require_prelocked(uuidkey::Base.PkgId, env::String) @ Base ./loading.jl:2330 [9] macro expansion @ ./loading.jl:2269 [inlined] [10] macro expansion @ ./lock.jl:287 [inlined] [11] __require(into::Module, mod::Symbol) @ Base ./loading.jl:2226 [12] #invoke_in_world#2 @ ./essentials.jl:1082 [inlined] [13] invoke_in_world @ ./essentials.jl:1079 [inlined] [14] require(into::Module, mod::Symbol) @ Base ./loading.jl:2219 Some type information was truncated. Use `show(err)` to see complete types. ``` Ideally the loading code would know to anticipate this and display a better error to the user (w/o the useless stack-trace) Resolves JuliaLang#54878, although we may wish to make this a warning or provide an alternative `using` / `import` pathway that can allow `@ccallable` registration to fail.
topolarity
added a commit
to topolarity/julia
that referenced
this issue
Sep 19, 2024
This turns the existing segfault into a warning, as on 1.9: ```julia julia> using Foo, Bar WARNING: @ccallable was already defined for this method name ``` Resolves JuliaLang#54878
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I would have expected
ERROR: @ccallable was already defined for this method name
, but instead I get:Crashes in Julia 1.10 and 1.11 - working on 1.9
The text was updated successfully, but these errors were encountered: