JuliaGraphs / JuliaGraphs/GraphIO.jl

GraphIOGraphMLExt does not support precompilation but is imported by a module that does.

Open
#57 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
62
Forks
30
PR merge metrics
No merged PRs in 30d

Description

I upgraded to Julia 1.9.3 and now I can't get GraphIO to work. I am getting an error that says:

│ This may mean GraphIOGraphMLExt [357b67ce-33f7-597c-8dc9-7304118606a9] does not support precompilation but is imported by a module that does.

Error:
julia> graph = loadgraph("/home/shared/graph1.gml", GraphIO.GraphML.GraphMLFormat())
ERROR: MethodError: no method matching loadgraph(::IOStream, ::String, ::GraphIO.GraphML.GraphMLFormat)

Closest candidates are:
loadgraph(::AbstractString, ::AbstractString, ::Graphs.AbstractGraphFormat)
@ Graphs ~/.julia/packages/Graphs/FXxqo/src/persistence/common.jl:13
loadgraph(::IO, ::String, ::LGFormat)
@ Graphs ~/.julia/packages/Graphs/FXxqo/src/persistence/lg.jl:146
loadgraph(::IO, ::String, ::GraphIO.NET.NETFormat)
@ GraphIO ~/.julia/packages/GraphIO/lObxj/src/NET/Net.jl:75
...

Stacktrace:
[1] (::Graphs.var"#148#149"{String, GraphIO.GraphML.GraphMLFormat})(io::IOStream)
@ Graphs ~/.julia/packages/Graphs/FXxqo/src/persistence/common.jl:15
[2] open(::Graphs.var"#148#149"{String, GraphIO.GraphML.GraphMLFormat}, ::String, ::Vararg{String}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Base ./io.jl:395
[3] open(::Function, ::String, ::String)
@ Base ./io.jl:392
[4] loadgraph(fn::String, gname::String, format::GraphIO.GraphML.GraphMLFormat)
@ Graphs ~/.julia/packages/Graphs/FXxqo/src/persistence/common.jl:14
[5] loadgraph(fn::String, format::GraphIO.GraphML.GraphMLFormat)
@ Graphs ~/.julia/packages/Graphs/FXxqo/src/persistence/common.jl:20
[6] top-level scope
@ REPL[8]:1

julia> using EzXML
│ Package EzXML not found, but a package named EzXML is available from a registry.
│ Install package?
│ (@v1.9) pkg> add EzXML
└ (y/n/o) [y]: y
Resolving package versions...
Installed EzXML ─ v1.1.0
Updating ~/.julia/environments/v1.9/Project.toml
[8f5d6c58] + EzXML v1.1.0
Updating ~/.julia/environments/v1.9/Manifest.toml
[8f5d6c58] + EzXML v1.1.0
Precompiling project...
3 dependencies successfully precompiled in 3 seconds. 138 already precompiled.
2 dependencies had warnings during precompilation:
┌ GraphIOGraphMLExt [357b67ce-33f7-597c-8dc9-7304118606a9]
│ ┌ Warning: Module GraphIOGraphMLExt with build ID ffffffff-ffff-ffff-0000-6336445ddfed is missing from the cache.
│ │ This may mean GraphIOGraphMLExt [357b67ce-33f7-597c-8dc9-7304118606a9] does not support precompilation but is imported by a module that does.
│ └ @ Base loading.jl:1793
│ ┌ Error: Error during loading of extension GraphIOGraphMLExt of GraphIO, use Base.retry_load_extensions() to retry.
│ │ exception =
│ │ 1-element ExceptionStack:
│ │ Declaring precompile(false) is not allowed in files that are being precompiled.
│ │ Stacktrace:
│ │ [1] _require(pkg::Base.PkgId, env::Nothing)
│ │ @ Base ./loading.jl:1797
│ │ [2] _require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│ │ @ Base ./loading.jl:1660
│ │ [3] _require_prelocked(uuidkey::Base.PkgId)
│ │ @ Base ./loading.jl:1658
│ │ [4] run_extension_callbacks(extid::Base.ExtensionId)
│ │ @ Base ./loading.jl:1255
│ │ [5] run_extension_callbacks(pkgid::Base.PkgId)
│ │ @ Base ./loading.jl:1290
│ │ [6] run_package_callbacks(modkey::Base.PkgId)
│ │ @ Base ./loading.jl:1124
│ │ [7] _require_prelocked(uuidkey::Base.PkgId, env::String)
│ │ @ Base ./loading.jl:1667
│ │ [8] macro expansion
│ │ @ ./loading.jl:1648 [inlined]
│ │ [9] macro expansion
│ │ @ ./lock.jl:267 [inlined]
│ │ [10] require(into::Module, mod::Symbol)
│ │ @ Base ./loading.jl:1611
│ │ [11] top-level scope
│ │ @ ~/.julia/packages/GraphIO/lObxj/ext/GraphIOGEXFExt.jl:8
│ │ [12] include
│ │ @ ./Base.jl:457 [inlined]
│ │ [13] include_package_for_output(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::String)
│ │ @ Base ./loading.jl:2049
│ │ [14] top-level scope
│ │ @ stdin:3
│ │ [15] eval
│ │ @ ./boot.jl:370 [inlined]
│ │ [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│ │ @ Base ./loading.jl:1903
│ │ [17] include_string
│ │ @ ./loading.jl:1913 [inlined]
│ │ [18] exec_options(opts::Base.JLOptions)
│ │ @ Base ./client.jl:305
│ │ [19] _start()
│ │ @ Base ./client.jl:522
│ └ @ Base loading.jl:1261

┌ GraphIOGEXFExt [2b66b2ab-f48c-58da-9972-304391d605c5]
│ ┌ Warning: Module GraphIOGEXFExt with build ID ffffffff-ffff-ffff-0000-633643bc417c is missing from the cache.
│ │ This may mean GraphIOGEXFExt [2b66b2ab-f48c-58da-9972-304391d605c5] does not support precompilation but is imported by a module that does.
│ └ @ Base loading.jl:1793
│ ┌ Error: Error during loading of extension GraphIOGEXFExt of GraphIO, use Base.retry_load_extensions() to retry.
│ │ exception =
│ │ 1-element ExceptionStack:
│ │ Declaring precompile(false) is not allowed in files that are being precompiled.
│ │ Stacktrace:
│ │ [1] _require(pkg::Base.PkgId, env::Nothing)
│ │ @ Base ./loading.jl:1797
│ │ [2] _require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│ │ @ Base ./loading.jl:1660
│ │ [3] _require_prelocked(uuidkey::Base.PkgId)
│ │ @ Base ./loading.jl:1658
│ │ [4] run_extension_callbacks(extid::Base.ExtensionId)
│ │ @ Base ./loading.jl:1255
│ │ [5] run_extension_callbacks(pkgid::Base.PkgId)
│ │ @ Base ./loading.jl:1290
│ │ [6] run_package_callbacks(modkey::Base.PkgId)
│ │ @ Base ./loading.jl:1124
│ │ [7] _require_prelocked(uuidkey::Base.PkgId, env::String)
│ │ @ Base ./loading.jl:1667
│ │ [8] macro expansion
│ │ @ ./loading.jl:1648 [inlined]
│ │ [9] macro expansion
│ │ @ ./lock.jl:267 [inlined]
│ │ [10] require(into::Module, mod::Symbol)
│ │ @ Base ./loading.jl:1611
│ │ [11] top-level scope
│ │ @ ~/.julia/packages/GraphIO/lObxj/ext/GraphIOGraphMLExt.jl:8
│ │ [12] include
│ │ @ ./Base.jl:457 [inlined]
│ │ [13] include_package_for_output(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::String)
│ │ @ Base ./loading.jl:2049
│ │ [14] top-level scope
│ │ @ stdin:3
│ │ [15] eval
│ │ @ ./boot.jl:370 [inlined]
│ │ [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│ │ @ Base ./loading.jl:1903
│ │ [17] include_string
│ │ @ ./loading.jl:1913 [inlined]
│ │ [18] exec_options(opts::Base.JLOptions)
│ │ @ Base ./client.jl:305
│ │ [19] _start()
│ │ @ Base ./client.jl:522
│ └ @ Base loading.jl:1261

[ Info: Precompiling GraphIOGraphMLExt [357b67ce-33f7-597c-8dc9-7304118606a9]
┌ Warning: Module GraphIOGraphMLExt with build ID ffffffff-ffff-ffff-0000-6336d9bff1e8 is missing from the cache.
│ This may mean GraphIOGraphMLExt [357b67ce-33f7-597c-8dc9-7304118606a9] does not support precompilation but is imported by a module that does.
└ @ Base loading.jl:1793
┌ Error: Error during loading of extension GraphIOGraphMLExt of GraphIO, use Base.retry_load_extensions() to retry.
│ exception =
│ 1-element ExceptionStack:
│ Declaring precompile(false) is not allowed in files that are being precompiled.
│ Stacktrace:
│ [1] _require(pkg::Base.PkgId, env::Nothing)
│ @ Base ./loading.jl:1797
│ [2] _require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│ @ Base ./loading.jl:1660
│ [3] _require_prelocked(uuidkey::Base.PkgId)
│ @ Base ./loading.jl:1658
│ [4] run_extension_callbacks(extid::Base.ExtensionId)
│ @ Base ./loading.jl:1255
│ [5] run_extension_callbacks(pkgid::Base.PkgId)
│ @ Base ./loading.jl:1290
│ [6] run_package_callbacks(modkey::Base.PkgId)
│ @ Base ./loading.jl:1124
│ [7] _require_prelocked(uuidkey::Base.PkgId, env::String)
│ @ Base ./loading.jl:1667
│ [8] macro expansion
│ @ ./loading.jl:1648 [inlined]
│ [9] macro expansion
│ @ ./lock.jl:267 [inlined]
│ [10] require(into::Module, mod::Symbol)
│ @ Base ./loading.jl:1611
│ [11] top-level scope
│ @ ~/.julia/packages/GraphIO/lObxj/ext/GraphIOGEXFExt.jl:8
│ [12] include
│ @ ./Base.jl:457 [inlined]
│ [13] include_package_for_output(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::String)
│ @ Base ./loading.jl:2049
│ [14] top-level scope
│ @ stdin:3
│ [15] eval
│ @ ./boot.jl:370 [inlined]
│ [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│ @ Base ./loading.jl:1903
│ [17] include_string
│ @ ./loading.jl:1913 [inlined]
│ [18] exec_options(opts::Base.JLOptions)
│ @ Base ./client.jl:305
│ [19] _start()
│ @ Base ./client.jl:522
└ @ Base loading.jl:1261

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with ext/GraphIOGraphMLExt.jl and ext/GraphIOGEXFExt.jl, then inspect the Graphs persistence loadgraph entry point shown in the stack trace. Reproduce the Julia 1.9.3 precompilation failure and GraphML loadgraph MethodError; done means the extensions load without precompilation errors and the reported GraphML call works.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
data
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.