Skip to content
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

[BUG] Unable to generate sysimage with Plots.jl in Julia 1.9.x #4828

Open
pedromxavier opened this issue Oct 2, 2023 · 2 comments
Open

[BUG] Unable to generate sysimage with Plots.jl in Julia 1.9.x #4828

pedromxavier opened this issue Oct 2, 2023 · 2 comments
Labels

Comments

@pedromxavier
Copy link

Details

Generating sysimage containing only Plots.jl in Julia >= 1.9 is taking more than 6 hours (GitHub actions job limit). This also happens while running locally.

See: https://github.com/pedromxavier/QUBO-notebooks/actions/runs/6375873703/job/17302152682

Backends

This is backend-independent.

Versions

Plots.jl version: v1.39.0

Output of versioninfo():

Julia Version 1.9.3
Commit bed2cd540a1 (2023-08-24 14:43 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 2 × Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, skylake-avx5[12](https://github.com/pedromxavier/QUBO-notebooks/actions/runs/6375873703/job/17302152682#step:4:13))
  Threads: 1 on 2 virtual cores
@pedromxavier pedromxavier changed the title [BUG] Unable to generate sysimage in Julia 1.9.x [BUG] Unable to generate sysimage with Plots.jl in Julia 1.9.x Oct 2, 2023
@jamblejoe
Copy link
Contributor

I can confirm this for Julia on ARM with M1 Apple chips. Generating the sysimage is taking over 2.5hrs already without being completed. I noted that the CPU usage of the Julia process is nearly zero.

@jamblejoe
Copy link
Contributor

After interrupting the creation of the sysimage I got the following error

julia> @time create_sysimage(;sysimage_path="PlotsSysImage.so")
Precompiling project...
  148 dependencies successfully precompiled in 70 seconds
⠙ [04h:13m:15s] PackageCompiler: compiling incremental system image^C
[72419] signal (2): Interrupt: 2
in expression starting at /var/folders/hv/3wt4f9r11dz935gtp9fjmsgm0000gp/T/jl_05g1AfgfcH:65
kevent at /usr/lib/system/libsystem_kernel.dylib (unknown line)
unknown function (ip: 0x0)
Allocations: 4070201 (Pool: 4068189; Big: 2012); GC: 5
✖ [04h:13m:15s] PackageCompiler: compiling incremental system image
┌ Warning: Free system memory dropped to 16.797 MiB during sysimage compilation.
│ If the reason the subprocess errored isn't clear, it may have been OOM-killed.
└ @ PackageCompiler ~/.julia/packages/PackageCompiler/Na90o/src/PackageCompiler.jl:138
ERROR: InterruptException:
Stacktrace:
  [1] try_yieldto(undo::typeof(Base.ensure_rescheduled))
    @ Base ./task.jl:920
  [2] wait()
    @ Base ./task.jl:984
  [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock}; first::Bool)
    @ Base ./condition.jl:130
  [4] wait
    @ ./condition.jl:125 [inlined]
  [5] wait(x::Base.Process)
    @ Base ./process.jl:661
  [6] success
    @ ./process.jl:523 [inlined]
  [7] run(::Cmd; wait::Bool)
    @ Base ./process.jl:480
  [8] run
    @ ./process.jl:477 [inlined]
  [9] #19
    @ ~/.julia/packages/PackageCompiler/Na90o/ext/TerminalSpinners.jl:157 [inlined]
 [10] spin(f::PackageCompiler.var"#19#21"{Cmd}, s::PackageCompiler.TerminalSpinners.Spinner{Base.TTY})
    @ PackageCompiler.TerminalSpinners ~/.julia/packages/PackageCompiler/Na90o/ext/TerminalSpinners.jl:164
 [11] macro expansion
    @ ~/.julia/packages/PackageCompiler/Na90o/ext/TerminalSpinners.jl:157 [inlined]
 [12] create_sysimg_object_file(object_file::String, packages::Vector{String}, packages_sysimg::Set{Base.PkgId}; project::String, base_sysimage::String, precompile_execution_file::Vector{String}, precompile_statements_file::Vector{String}, cpu_target::String, script::Nothing, sysimage_build_args::Cmd, extra_precompiles::String, incremental::Bool)
    @ PackageCompiler ~/.julia/packages/PackageCompiler/Na90o/src/PackageCompiler.jl:135
 [13] create_sysimg_object_file
    @ ~/.julia/packages/PackageCompiler/Na90o/src/PackageCompiler.jl:297 [inlined]
 [14] create_sysimage(packages::Nothing; sysimage_path::String, project::String, precompile_execution_file::Vector{String}, precompile_statements_file::Vector{String}, incremental::Bool, filter_stdlibs::Bool, cpu_target::String, script::Nothing, sysimage_build_args::Cmd, include_transitive_dependencies::Bool, base_sysimage::Nothing, julia_init_c_file::Nothing, julia_init_h_file::Nothing, version::Nothing, soname::Nothing, compat_level::String, extra_precompiles::String)
    @ PackageCompiler ~/.julia/packages/PackageCompiler/Na90o/src/PackageCompiler.jl:599
 [15] create_sysimage
    @ ~/.julia/packages/PackageCompiler/Na90o/src/PackageCompiler.jl:492 [inlined]
 [16] top-level scope
    @ ./timing.jl:273 [inlined]
 [17] top-level scope
    @ ./REPL[14]:0

The Julia repl was still alive afterwards, so I am sure it was not killed by the OS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants