JuliaPlots / PlotlyJS.jl

Julia library for plotting with plotly.js
Other
413 stars 77 forks source link

Pre-compilation does not finish with version 0.18.11 #477

Closed SupplyChef closed 4 months ago

SupplyChef commented 7 months ago

I am developing a package that uses PlotlyJS. When I upgraded to version 0.18.11 the pre-compilation would not complete and would get stopped on github after 6 hours. Reverting to version 0.18.10 makes the pre-compilation work again.

Please provide the following:

Julia Version 1.9.4 Commit 8e5136fa29 (2023-11-14 08:46 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: Windows (x86_64-w64-mingw32) CPU: 12 × Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-14.0.6 (ORCJIT, skylake) Threads: 1 on 12 virtual cores Environment: JULIA_IMAGE_THREADS = 1 JULIA_NUM_THREADS = 1

[31c24e10] Distributions v0.25.104 [86223c79] Graphs v1.9.0 [f0f68f2c] PlotlyJS v0.18.11 [8a0b78ce] SupplyChainModeling v0.1.2 [ade2ca70] Dates [cf7118a7] UUIDs

beorostica commented 6 months ago

This appears to be a duplicate of https://github.com/JuliaPlots/PlotlyJS.jl/issues/473. The issue is described in https://discourse.julialang.org/t/plotlyjs-0-18-11-hangs-when-trying-using-but-only-the-first-time/105636/5.

NicolasRiel commented 5 months ago

I am not sure this is the same problem

I am having similar issues on Windows 10-11 and also Ubuntu 22

When adding my package on these machines it gets stuck during the pre-compilation of DashBasePlotlyJSExt (hangs forever).

It was working just fine before Julia 1.10

BeastyBlacksmith commented 5 months ago

That is most likely https://github.com/JuliaPlots/PlotlyKaleido.jl/issues/13

BeastyBlacksmith commented 4 months ago

Please try 0.18.13

NicolasRiel commented 4 months ago

Hi, so version 0.18.13 does help with the pre-compilation on Windows, that can be completed now.

However, when "using my_package" it now loads forever (on Windows only). I have to cancel the "using my_package" and relaunch it several times before it is able to actually load the package. This is especially a problem for the CI as because of this it still fails on Windows!

Hope this helps, and thanks for the support

Nicolas

NicolasRiel commented 4 months ago

This is the error I get now when trying to use PlotlyJS on windows (after trying to load for 360min):

serial: Error During Test at D:\a\MAGEMinApp.jl\MAGEMinApp.jl\test\runtests.jl:15
  Got exception outside of a @test
  LoadError: InitError: InterruptException:
  Stacktrace:
    [1] poptask(W::Base.IntrusiveLinkedListSynchronized{Task})
      @ Base .\task.jl:974
    [2] wait()
      @ Base .\task.jl:983
    [3] wait(c::Base.GenericCondition{Base.Threads.SpinLock}; first::Bool)
      @ Base .\condition.jl:130
    [4] wait
      @ .\condition.jl:125 [inlined]
    [5] readuntil(x::Base.PipeEndpoint, c::UInt8; keep::Bool)
      @ Base .\stream.jl:1014
    [6] readuntil
      @ .\stream.jl:998 [inlined]
    [7] #readuntil#410
      @ .\io.jl:442 [inlined]
    [8] readuntil
      @ .\io.jl:442 [inlined]
    [9] readline(s::Pipe; keep::Bool)
      @ Base .\io.jl:548
   [10] readline
      @ .\io.jl:547 [inlined]
   [11] start(; plotly_version::Missing, mathjax::Missing, mathjax_version::VersionNumber, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
      @ PlotlyKaleido C:\Users\runneradmin\.julia\packages\PlotlyKaleido\HmwOd\src\PlotlyKaleido.jl:95
   [12] start
      @ C:\Users\runneradmin\.julia\packages\PlotlyKaleido\HmwOd\src\PlotlyKaleido.jl:29 [inlined]
   [13] __init__()
      @ PlotlyJS C:\Users\runneradmin\.julia\packages\PlotlyJS\b6MbQ\src\PlotlyJS.jl:104
   [14] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
      @ Base .\loading.jl:1115
   [15] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::Nothing, depmods::Vector{Any})
      @ Base .\loading.jl:1061
   [16] _tryrequire_from_serialized(modkey::Base.PkgId, path::String, ocachepath::Nothing, sourcepath::String, depmods::Vector{Any})
      @ Base .\loading.jl:1391
   [17] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
      @ Base .\loading.jl:1494
   [18] _require(pkg::Base.PkgId, env::String)
      @ Base .\loading.jl:1783
   [19] _require_prelocked(uuidkey::Base.PkgId, env::String)
      @ Base .\loading.jl:1660
   [20] macro expansion
      @ .\loading.jl:1648 [inlined]
   [21] macro expansion
      @ .\lock.jl:267 [inlined]
   [22] require(into::Module, mod::Symbol)
      @ Base .\loading.jl:1611
   [23] include(fname::String)
      @ Base.MainInclude .\client.jl:478
   [24] macro expansion
      @ D:\a\MAGEMinApp.jl\MAGEMinApp.jl\test\runtests.jl:16 [inlined]
   [25] macro expansion
      @ C:\hostedtoolcache\windows\julia\1.9.4\x64\share\julia\stdlib\v1.9\Test\src\Test.jl:1498 [inlined]
   [26] top-level scope
      @ D:\a\MAGEMinApp.jl\MAGEMinApp.jl\test\runtests.jl:16
   [27] include(fname::String)
      @ Base.MainInclude .\client.jl:478
   [28] top-level scope
      @ none:6
   [29] eval
      @ .\boot.jl:370 [inlined]
   [30] exec_options(opts::Base.JLOptions)
      @ Base .\client.jl:280
   [31] _start()
      @ Base .\client.jl:522
  during initialization of module PlotlyJS
  in expression starting at D:\a\MAGEMinApp.jl\MAGEMinApp.jl\test\tests.jl:4
disberd commented 4 months ago

This should be solved now. See the related comment in https://github.com/JuliaPlots/PlotlyJS.jl/issues/473#issuecomment-1979300463 for more details.

Edit: It does not specifically solves this in 0.18.11, you'd need to update to 0.18.13 and make sure that the dependent PlotlyKaleido is at least at version 2.2.4 (which should happen automatically if you install PlotlyJS from now on)