Skip to content

Precompilation can get a KeyError on bad(?) manifest #60053

@KristofferC

Description

@KristofferC
❯ julia +nightly --project -ie 'using Pkg'        
[ Info: Precompiling Pkg [44cfe95a-1eb2-52ea-b672-e2afdf69b78f] (caches not reused: 7 for different Julia build configuration, 1 for file content changed, 2 for different compilation options, 1 for different source file path)
ERROR: KeyError: key Base.PkgId(Base.UUID("3161d3a3-bdf6-5164-811a-617609db77b4"), "Zstd_jll") not found
Stacktrace:
  [1] getindex
    @ ./dict.jl:479 [inlined]
  [2] scan_deps!(stack::Vector{Base.PkgId}, could_be_cycle::Dict{Base.PkgId, Bool}, cycles::Vector{Vector{Base.PkgId}}, pkg::Base.PkgId, dmap::Dict{Base.PkgId, Vector{Base.PkgId}})
    @ Base.Precompilation ./precompilation.jl:438
  [3] scan_pkg!
    @ ./precompilation.jl:432 [inlined]
  [4] scan_deps!(stack::Vector{Base.PkgId}, could_be_cycle::Dict{Base.PkgId, Bool}, cycles::Vector{Vector{Base.PkgId}}, pkg::Base.PkgId, dmap::Dict{Base.PkgId, Vector{Base.PkgId}})
    @ Base.Precompilation ./precompilation.jl:445
  [5] scan_pkg!
    @ ./precompilation.jl:432 [inlined]
  [6] _precompilepkgs(pkgs::Vector{Base.PkgId}, internal_call::Bool, strict::Bool, warn_loaded::Bool, timing::Bool, _from_loading::Bool, configs::Vector{Pair{Cmd, Base.CacheFlags}}, _io::IOContext{IO}, fancyprint::Bool, manifest::Bool, ignore_loaded::Bool)
    @ Base.Precompilation ./precompilation.jl:727
  [7] precompilepkgs(pkgs::Vector{Base.PkgId}; internal_call::Bool, strict::Bool, warn_loaded::Bool, timing::Bool, _from_loading::Bool, configs::Pair{Cmd, Base.CacheFlags}, io::Base.TTY, fancyprint::Bool, manifest::Bool, ignore_loaded::Bool)
    @ Base.Precompilation ./precompilation.jl:488
  [8] (::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}})()
    @ Base ./loading.jl:2750

Repros with:

Manifest.toml.txt

Project.toml.txt

and


~/JuliaPkgs/Pkg.jl/repor kc/stdlib_data*
❯ mkdir src       

~/JuliaPkgs/Pkg.jl/repor kc/stdlib_data*
❯ touch src/Pkg.jl      

~/JuliaPkgs/Pkg.jl/repor kc/stdlib_data*
❯ julia +nightly --project -q

julia> using Pkg
[ Info: Precompiling Pkg [44cfe95a-1eb2-52ea-b672-e2afdf69b78f] (caches not reused: 7 for different Julia build configuration, 2 for different source file path, 2 for different compilation options)
ERROR: KeyError: key Base.PkgId(Base.UUID("3161d3a3-bdf6-5164-811a-617609db77b4"), "Zstd_jll") not found
...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions