Plots/GR broken after updating Pluto dependencies

I got another error after same procedure: updating pluto dependencies also updated plots

┌ Warning: Module Libtiff_jll with build ID ffffffff-ffff-ffff-0011-7bc9495eb81f is missing from the cache.
│ This may mean Libtiff_jll [89763e89-9b03-5906-acba-b20f662cd828] does not support precompilation but is imported by a module that does.
└ @ Base loading.jl:1793
┌ Warning: The call to compilecache failed to create a usable precompiled cache file for GR_jll [d2c73de3-f751-5644-a686-071e5b155ba9]
│   exception = Required dependency libwebp_jll [c5f90fcd-3b7e-5836-afba-fc50a0988cb2] failed to load from a cache file.
└ @ Base loading.jl:1818
┌ Warning: Module Libtiff_jll with build ID ffffffff-ffff-ffff-0011-7bc9ca94fed4 is missing from the cache.
│ This may mean Libtiff_jll [89763e89-9b03-5906-acba-b20f662cd828] does not support precompilation but is imported by a module that does.
└ @ Base loading.jl:1793
┌ Warning: The call to compilecache failed to create a usable precompiled cache file for GR [28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71]
│   exception = Required dependency libwebp_jll [c5f90fcd-3b7e-5836-afba-fc50a0988cb2] failed to load from a cache file.
└ @ Base loading.jl:1818
┌ Warning: Module Libtiff_jll with build ID ffffffff-ffff-ffff-0011-7bcb239ffdbe is missing from the cache.
│ This may mean Libtiff_jll [89763e89-9b03-5906-acba-b20f662cd828] does not support precompilation but is imported by a module that does.
└ @ Base loading.jl:1793
┌ Warning: The call to compilecache failed to create a usable precompiled cache file for GR_jll [d2c73de3-f751-5644-a686-071e5b155ba9]
│   exception = Required dependency libwebp_jll [c5f90fcd-3b7e-5836-afba-fc50a0988cb2] failed to load from a cache file.
└ @ Base loading.jl:1818
┌ Warning: Module Libtiff_jll with build ID ffffffff-ffff-ffff-0011-7bcb8d2be57c is missing from the cache.
│ This may mean Libtiff_jll [89763e89-9b03-5906-acba-b20f662cd828] does not support precompilation but is imported by a module that does.
└ @ Base loading.jl:1793
ERROR: LoadError: UndefRefError: access to undefined reference
Stacktrace:
  [1] getproperty
    @ ./Base.jl:37 [inlined]
  [2] getindex
    @ ./refvalue.jl:56 [inlined]
  [3] load_libs(always::Bool)
    @ GR ~/.julia/packages/GR/hbmas/src/funcptrs.jl:38
  [4] get_func_ptr(handle::Base.RefValue{Ptr{Nothing}}, ptrs::GR.LibGR_Ptrs, func::Symbol, loaded::Bool)
    @ GR ~/.julia/packages/GR/hbmas/src/funcptrs.jl:75
  [5] get_func_ptr
    @ ~/.julia/packages/GR/hbmas/src/funcptrs.jl:75 [inlined]
  [6] libGR_ptr
    @ ~/.julia/packages/GR/hbmas/src/funcptrs.jl:84 [inlined]
  [7] setcharheight(height::Float64)
    @ GR ~/.julia/packages/GR/hbmas/src/GR.jl:1551
  [8] gr_set_font(f::Plots.Font, s::Plots.Subplot{Plots.GRBackend}; halign::Symbol, valign::Symbol, color::ColorTypes.RGB{FixedPointNumbers.N0f8}, rotation::Int64)
    @ Plots ~/.julia/packages/Plots/rz1WP/src/backends/gr.jl:431
  [9] gr_set_tickfont(sp::Plots.Subplot{Plots.GRBackend}, ax::Plots.Axis; kw::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Plots ~/.julia/packages/Plots/rz1WP/src/backends/gr.jl:694
 [10] gr_set_tickfont(sp::Plots.Subplot{Plots.GRBackend}, ax::Plots.Axis)
    @ Plots ~/.julia/packages/Plots/rz1WP/src/backends/gr.jl:694
 [11] _update_min_padding!(sp::Plots.Subplot{Plots.GRBackend})
    @ Plots ~/.julia/packages/Plots/rz1WP/src/backends/gr.jl:870
 [12] iterate
    @ ./generator.jl:47 [inlined]
 [13] _collect(c::Matrix{RecipesBase.AbstractLayout}, itr::Base.Generator{Matrix{RecipesBase.AbstractLayout}, typeof(Plots._update_min_padding!)}, #unused#::Base.EltypeUnknown, isz::Base.HasShape{2})
    @ Base ./array.jl:802
 [14] collect_similar
    @ ./array.jl:711 [inlined]
 [15] map
    @ ./abstractarray.jl:3261 [inlined]
 [16] _update_min_padding!(layout::Plots.GridLayout)
    @ Plots ~/.julia/packages/Plots/rz1WP/src/layouts.jl:277
 [17] prepare_output(plt::Plots.Plot{Plots.GRBackend})
    @ Plots ~/.julia/packages/Plots/rz1WP/src/plot.jl:239
 [18] show
    @ ~/.julia/packages/Plots/rz1WP/src/output.jl:231 [inlined]
 [19] #344
    @ ~/.julia/packages/Plots/rz1WP/src/output.jl:6 [inlined]
 [20] open(::Plots.var"#344#345"{Plots.Plot{Plots.GRBackend}}, ::String, ::Vararg{String}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:395
 [21] open
    @ ./io.jl:392 [inlined]
 [22] png(plt::Plots.Plot{Plots.GRBackend}, fn::String)
    @ Plots ~/.julia/packages/Plots/rz1WP/src/output.jl:6
 [23] savefig(plt::Plots.Plot{Plots.GRBackend}, fn::String)
    @ Plots ~/.julia/packages/Plots/rz1WP/src/output.jl:149
 [24] var"##1#293"()
    @ Plots ~/.julia/packages/Plots/rz1WP/src/init.jl:111
 [25] top-level scope
    @ ~/.julia/packages/Plots/rz1WP/src/init.jl:118
 [26] eval
    @ ./boot.jl:370 [inlined]
 [27] eval
    @ ~/.julia/packages/Plots/rz1WP/src/Plots.jl:1 [inlined]
 [28] _broadcast_getindex_evalf
    @ ./broadcast.jl:683 [inlined]
 [29] _broadcast_getindex
    @ ./broadcast.jl:656 [inlined]
 [30] getindex
    @ ./broadcast.jl:610 [inlined]
 [31] copy
    @ ./broadcast.jl:912 [inlined]
 [32] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(Plots.eval), Tuple{Vector{Expr}}})
    @ Base.Broadcast ./broadcast.jl:873
 [33] macro expansion
    @ ~/.julia/packages/Plots/rz1WP/src/init.jl:126 [inlined]
 [34] macro expansion
    @ ~/.julia/packages/PrecompileTools/0yi7r/src/workloads.jl:74 [inlined]
 [35] (::Plots.var"#557#558")()
    @ Plots ~/.julia/packages/Plots/rz1WP/src/init.jl:123
 [36] withenv(f::Plots.var"#557#558", keyvals::Pair{String, String})
    @ Base ./env.jl:197
 [37] macro expansion
    @ ~/.julia/packages/Plots/rz1WP/src/init.jl:122 [inlined]
 [38] top-level scope
    @ ~/.julia/packages/PrecompileTools/0yi7r/src/workloads.jl:136
 [39] include(mod::Module, _path::String)
    @ Base ./Base.jl:457
 [40] include(x::String)
    @ Plots ~/.julia/packages/Plots/rz1WP/src/Plots.jl:1
 [41] top-level scope
    @ ~/.julia/packages/Plots/rz1WP/src/Plots.jl:176
 [42] include
    @ ./Base.jl:457 [inlined]
 [43] 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:2045
 [44] top-level scope
    @ stdin:3
in expression starting at /home/jolin_user/.julia/packages/Plots/rz1WP/src/init.jl:87
in expression starting at /home/jolin_user/.julia/packages/Plots/rz1WP/src/Plots.jl:1
in expression starting at stdin:3

completely different error, but for sure again because there is a wrong GR package somehow loaded

Fixed by [Libtiff_jll] Yank v4.5.1+0 with circular dependencies by giordano · Pull Request #86071 · JuliaRegistries/General · GitHub

2 Likes

Unfortunately, this fix does not trickle down to the currently installed Julia 1.91.
I have to reinstall Julia before the fix seemed to have effected.

What I did was (using brew.sh):

  1. Uninstall my current Julia
    brew uninstall juliaup
    brew uninstall julia
  2. Moved the original .julia directory for clean install
    mv ~/.julia ~/.old-julia
    just to make sure I have a backup
  3. Reinstalled Julia from scratch, without using juliaup
    brew intall julia
  4. Once successful, you may delete the .old-julia in your home directory.

Within Julia, I was able to add Plots within the pkg> environment without much problem.

I assume that the root of my Plots “circular dependency” problem is the GR installation.

Did you try to simply update the registry?