Pluto.jl icon indicating copy to clipboard operation
Pluto.jl copied to clipboard

Precompile failure can cause a Pluto notebook to stop responding; `using Profile`

Open BioTurboNick opened this issue 2 years ago • 4 comments

I believe the error itself is unrelated to Pluto, but it's causing the notebook to hang (working animations running). Pluto v0.19.0, Julia 1.8.0-beta3

It seems to be happening when I try to add using Profile. The only way to get out of it is to edit the notebook manually to remove that line, then restart the notebook.

      From worker 17:   ERROR: LoadError: ccall method definition: argument 1 type doesn't correspond to a C type
      From worker 17:   Stacktrace:
      From worker 17:    [1] top-level scope
      From worker 17:      @ ~/.julia/packages/SentinelArrays/p1IoM/src/SentinelArrays.jl:209
      From worker 17:    [2] include
      From worker 17:      @ ./Base.jl:422 [inlined]
      From worker 17:    [3] 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, UInt64}}, source::String)
      From worker 17:      @ Base ./loading.jl:1400
      From worker 17:    [4] top-level scope
      From worker 17:      @ stdin:1
      From worker 17:   in expression starting at /home/ec2-user/.julia/packages/SentinelArrays/p1IoM/src/SentinelArrays.jl:1
      From worker 17:   in expression starting at stdin:1
      From worker 17:   ERROR: LoadError: Failed to precompile SentinelArrays [91c51154-3ec4-41a3-a24f-3f23e20d615c] to /home/ec2-user/.julia/compiled/v1.8/SentinelArrays/jl_rqgd4r.
      From worker 17:   Stacktrace:
      From worker 17:     [1] error(s::String)
      From worker 17:       @ Base ./error.jl:35
      From worker 17:     [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
      From worker 17:       @ Base ./loading.jl:1551
      From worker 17:     [3] compilecache
      From worker 17:       @ ./loading.jl:1495 [inlined]
      From worker 17:     [4] _require(pkg::Base.PkgId)
      From worker 17:       @ Base ./loading.jl:1199
      From worker 17:     [5] _require_prelocked(uuidkey::Base.PkgId)
      From worker 17:       @ Base ./loading.jl:1084
      From worker 17:     [6] macro expansion
      From worker 17:       @ ./loading.jl:1064 [inlined]
      From worker 17:     [7] macro expansion
      From worker 17:       @ ./lock.jl:223 [inlined]
      From worker 17:     [8] require(into::Module, mod::Symbol)
      From worker 17:       @ Base ./loading.jl:1028
      From worker 17:     [9] include
      From worker 17:       @ ./Base.jl:422 [inlined]
      From worker 17:    [10] 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, UInt64}}, source::Nothing)
      From worker 17:       @ Base ./loading.jl:1400
      From worker 17:    [11] top-level scope
      From worker 17:       @ stdin:1
      From worker 17:   in expression starting at /home/ec2-user/.julia/packages/CSV/0Elut/src/CSV.jl:1
      From worker 17:   in expression starting at stdin:1

BioTurboNick avatar Apr 19 '22 17:04 BioTurboNick

We should create a package that always errors during precompilation and add it to https://github.com/JuliaPluto/PlutoPkgTestRegistry to debug/fix/test this.

fonsp avatar Apr 20 '22 19:04 fonsp

I created https://github.com/JuliaPluto/PlutoPkgTestErrorA.jl and added it to https://github.com/JuliaPluto/PlutoPkgTestRegistry.

I'm leaving the rest as a Good First Issue! Search for PlutoPkgTest in our source code to learn more about writing package manager tests.

fonsp avatar Apr 20 '22 19:04 fonsp

Not sure if it is related, but I was trying to test Pluto for the 1st time, and it partially hangs in the welcome page as below chrome_2022-04-22_16-37-40 The 2 first menus are responding though. The 1st one goes to different examples, but none is accessible (blank page forever); while the 2nd one "create a new notebook" leads also to a blank page. The console does not say anything beside "... have fun" and "ctrl+C and updating registry done".

A ctrl+C sometimes yields

      From worker 2:    fatal: error thrown and no exception handler available.
      From worker 2:    InterruptException()
      From worker 2:     jl_mutex_unlock at /cygdrive/c/buildbot/worker/package_win64/build/src\julia_locks.h:129 [inlined]
      From worker 2:     jl_task_get_next at /cygdrive/c/buildbot/worker/package_win64/build/src\partr.c:484
      From worker 2:    poptask at .\task.jl:827
      From worker 2:    wait at .\task.jl:836
      From worker 2:    task_done_hook at .\task.jl:544
      From worker 2:    jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1788 [inlined]
      From worker 2:    jl_finish_task at /cygdrive/c/buildbot/worker/package_win64/build/src\task.c:218
      From worker 2:    start_task at /cygdrive/c/buildbot/worker/package_win64/build/src\task.c:888

Hope this helps.

sylvain-bougnoux avatar Apr 22 '22 14:04 sylvain-bougnoux

@sylvain-bougnoux Can you make a new issue? A screen recording would be great

fonsp avatar Apr 23 '22 09:04 fonsp