GenericMappingTools / GenericMappingTools/GMT.jl

Precompilation failure of GMT.jl v1.42.0 on macOS

Open
#2,030 14 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
221
Forks
36
Avg merge
1h 36m
Merged PRs (30d)
17

Description

It fails on macOS with Julia 1.12.6 on both Apple Silicon and Intel chip:

```
julia> err
PkgPrecompileError: The following 3 direct dependencies failed to precompile:

GMT

Failed to precompile GMT [5752ebe1-31b9-557e-87aa-f909b540aa54] to "/Users/test/.julia/compiled/v1.12/GMT/jl_YgkuFf".
[37108] signal 6: Abort trap: 6
in expression starting at /Users/test/.julia/packages/GMT/rA3mT/src/GMT.jl:417
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 255935437 (Pool: 255931851; Big: 3586); GC: 45
GMT → GMTDGTLidarExt

Failed to precompile GMTDGTLidarExt [1f1582e6-6292-5a9d-a98c-a412d01b6888] to "/Users/test/.julia/compiled/v1.12/GMTDGTLidarExt/jl_Wm6xGi".
[37116] signal 6: Abort trap: 6
in expression starting at /Users/test/.julia/packages/GMT/rA3mT/src/GMT.jl:417
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 256476526 (Pool: 256472917; Big: 3609); GC: 44
ERROR: LoadError: Failed to precompile GMT [5752ebe1-31b9-557e-87aa-f909b540aa54] to "/Users/test/.julia/compiled/v1.12/GMT/jl_jMvxqs".
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:44
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base ./loading.jl:3315
[3] (::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}})()
@ Base ./loading.jl:2683
[4] mkpidlock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.12.6+0.aarch64.apple.darwin14/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:96
[5] #mkpidlock#7
@ ~/.julia/juliaup/julia-1.12.6+0.aarch64.apple.darwin14/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:91 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.12.6+0.aarch64.apple.darwin14/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:117
[7] #invokelatest_gr#232
@ ./reflection.jl:1297 [inlined]
[8] invokelatest_gr
@ ./reflection.jl:1289 [inlined]
[9] maybe_cachefile_lock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base ./loading.jl:3886
[10] maybe_cachefile_lock
@ ./loading.jl:3883 [inlined]
[11] __require_prelocked(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:2669
[12] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:2495
[13] macro expansion
@ ./loading.jl:2423 [inlined]
[14] macro expansion
@ ./lock.jl:376 [inlined]
[15] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2388
[16] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2364
[17] top-level scope
@ ~/.julia/packages/GMT/rA3mT/ext/GMTDGTLidarExt/GMTDGTLidarExt.jl:6
[18] include(mod::Module, _path::String)
@ Base ./Base.jl:306
[19] 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::Nothing)
@ Base ./loading.jl:3028
[20] top-level scope
@ stdin:5
[21] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[22] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
@ Base ./loading.jl:2874
[23] include_string
@ ./loading.jl:2884 [inlined]
[24] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:315
[25] _start()
@ Base ./client.jl:550
in expression starting at /Users/test/.julia/packages/GMT/rA3mT/ext/GMTDGTLidarExt/GMTDGTLidarExt.jl:5
in expression starting at stdin:5

GMT → GMTDataFramesExt

Failed to precompile GMTDataFramesExt [b0121151-b40e-578b-8798-214dacfa5da6] to "/Users/test/.julia/compiled/v1.12/GMTDataFramesExt/jl_359owM".
[37113] signal 6: Abort trap: 6
in expression starting at /Users/test/.julia/packages/GMT/rA3mT/src/GMT.jl:417
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 256531922 (Pool: 256528312; Big: 3610); GC: 45
ERROR: LoadError: Failed to precompile GMT [5752ebe1-31b9-557e-87aa-f909b540aa54] to "/Users/test/.julia/compiled/v1.12/GMT/jl_nklO5g".
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:44
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base ./loading.jl:3315
[3] (::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}})()
@ Base ./loading.jl:2683
[4] mkpidlock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.12.6+0.aarch64.apple.darwin14/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:96
[5] #mkpidlock#7
@ ~/.julia/juliaup/julia-1.12.6+0.aarch64.apple.darwin14/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:91 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.12.6+0.aarch64.apple.darwin14/share/julia/stdlib/v1.12/FileWatching/src/pidfile.jl:117
[7] #invokelatest_gr#232
@ ./reflection.jl:1297 [inlined]
[8] invokelatest_gr
@ ./reflection.jl:1289 [inlined]
[9] maybe_cachefile_lock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base ./loading.jl:3886
[10] maybe_cachefile_lock
@ ./loading.jl:3883 [inlined]
[11] __require_prelocked(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:2669
[12] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:2495
[13] macro expansion
@ ./loading.jl:2423 [inlined]
[14] macro expansion
@ ./lock.jl:376 [inlined]
[15] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2388
[16] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2364
[17] top-level scope
@ ~/.julia/packages/GMT/rA3mT/ext/GMTDataFramesExt/GMTDataFramesExt.jl:2
[18] include(mod::Module, _path::String)
@ Base ./Base.jl:306
[19] 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::Nothing)
@ Base ./loading.jl:3028
[20] top-level scope
@ stdin:5
[21] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[22] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
@ Base ./loading.jl:2874
[23] include_string
@ ./loading.jl:2884 [inlined]
[24] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:315
[25] _start()
@ Base ./client.jl:550
in expression starting at /Users/test/.julia/packages/GMT/rA3mT/ext/GMTDataFramesExt/GMTDataFramesExt.jl:1
in expression starting at stdin:5
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the failure with Julia 1.12.6 on macOS and inspect the precompilation path at src/GMT.jl:417. Then compare the GMTDGTLidarExt and GMTDataFramesExt entry points named in the trace. Done means GMT v1.42.0 and both extensions precompile without the abort on Apple Silicon and Intel.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.