Skip to content

Extension loading issue #44

Description

@christiangnrd

Error encountered when trying to load a GPU backend Atomix extension

See https://buildkite.com/julialang/atomix-dot-jl/builds/18

Error:
│  ┌ Warning: Module Metal with build ID ffffffff-ffff-ffff-0000-ba908ccbce5a is missing from the cache.
│  │ This may mean Metal [dde4c033-4e86-420c-a63e-0dd931031962] does not support precompilation but is imported by a module that does.
│  └ @ Base loading.jl:2539
│  ┌ Error: Error during loading of extension AtomixMetalExt of Atomix, use `Base.retry_load_extensions()` to retry.
│  │   exception =
│  │    1-element ExceptionStack:
│  │    Error when precompiling module, potentially caused by a __precompile__(false) declaration in the module.
│  │    Stacktrace:
│  │      [1] _require(pkg::Base.PkgId, env::Nothing)
│  │        @ Base ./loading.jl:2601
│  │      [2] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│  │        @ Base ./loading.jl:2386
│  │      [3] #invoke_in_world#3
│  │        @ ./essentials.jl:1089 [inlined]
│  │      [4] invoke_in_world
│  │        @ ./essentials.jl:1086 [inlined]
│  │      [5] _require_prelocked
│  │        @ ./loading.jl:2373 [inlined]
│  │      [6] _require_prelocked
│  │        @ ./loading.jl:2372 [inlined]
│  │      [7] run_extension_callbacks(extid::Base.ExtensionId)
│  │        @ Base ./loading.jl:1542
│  │      [8] run_extension_callbacks(pkgid::Base.PkgId)
│  │        @ Base ./loading.jl:1574
│  │      [9] run_package_callbacks(modkey::Base.PkgId)
│  │        @ Base ./loading.jl:1395
│  │     [10] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
│  │        @ Base ./loading.jl:2063
│  │     [11] _require(pkg::Base.PkgId, env::String)
│  │        @ Base ./loading.jl:2525
│  │     [12] __require_prelocked(uuidkey::Base.PkgId, env::String)
│  │        @ Base ./loading.jl:2386
│  │     [13] #invoke_in_world#3
│  │        @ ./essentials.jl:1089 [inlined]
│  │     [14] invoke_in_world
│  │        @ ./essentials.jl:1086 [inlined]
│  │     [15] _require_prelocked(uuidkey::Base.PkgId, env::String)
│  │        @ Base ./loading.jl:2373
│  │     [16] macro expansion
│  │        @ ./loading.jl:2312 [inlined]
│  │     [17] macro expansion
│  │        @ ./lock.jl:273 [inlined]
│  │     [18] __require(into::Module, mod::Symbol)
│  │        @ Base ./loading.jl:2269
│  │     [19] #invoke_in_world#3
│  │        @ ./essentials.jl:1089 [inlined]
│  │     [20] invoke_in_world
│  │        @ ./essentials.jl:1086 [inlined]
│  │     [21] require(into::Module, mod::Symbol)
│  │        @ Base ./loading.jl:2258
│  │     [22] include
│  │        @ ./Base.jl:557 [inlined]
│  │     [23] include_package_for_otput(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
│  │        @ Base ./loading.jl:2879
│  │     [24] top-level scope
│  │        @ stdin:5
│  │     [25] eval
│  │        @ ./boot.jl:430 [inlined]
│  │     [26] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│  │        @ Base ./loading.jl:2732
│  │     [27] include_string
│  │        @ ./loading.jl:2742 [inlined]
│  │     [28] exec_options(opts::Base.JLOptions)
│  │        @ Base ./client.jl:321
│  │     [29] _start()
│  │        @ Base ./client.jl:531
│  └ @ Base loading.jl:1548

I'm not familiar enough with precompilation to know if that's a Julia bug or a bug in this PR.

Tests still seem to pass though...

Originally posted by @christiangnrd in #42 (comment)

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