Skip to content

julia 1.8.2 breaks Plots precompilation (vs 1.8.1) on windows #46989

@t-bltg

Description

@t-bltg

I have no other explanation, the error was first spotted in JuliaPlots/Plots.jl#4402, and is constantly reproducible.

windows - julia 1.8.1: https://github.com/JuliaPlots/Plots.jl/actions/runs/3158230006/jobs/5140026800
windows - julia 1.8.2: https://github.com/JuliaPlots/Plots.jl/actions/runs/3158234450/jobs/5140035915

PR pinning 1.8.1 in ci: JuliaPlots/Plots.jl#4404
PR pinning 1.8.2 in ci: JuliaPlots/Plots.jl#4403

  ✗ Plots
  ✓ ImageQualityIndexes
  ✓ VisualRegressionTests
  ✓ Images
  ✗ StatsPlots
  189 dependencies successfully precompiled in 311 seconds. 117 already precompiled.
  2 dependencies errored. To see a full report either run `import Pkg; Pkg.precompile()` or load the packages
     Testing Running tests...
ERROR: LoadError: SystemError: opening file "C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\jl_0Tex0PafwR.png": No such file or directory
Stacktrace:
  [1] systemerror(p::String, errno::Int32; extrainfo::Nothing)
    @ Base .\error.jl:176
  [2] #systemerror#80
    @ .\error.jl:175 [inlined]
  [3] systemerror
    @ .\error.jl:175 [inlined]
  [4] open(fname::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing)
    @ Base .\iostream.jl:293
  [5] open
    @ .\iostream.jl:275 [inlined]
  [6] open(f::Base.var"#387#388"{String}, args::String; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base .\io.jl:382
  [7] open
    @ .\io.jl:381 [inlined]
  [8] read
    @ .\io.jl:462 [inlined]
  [9] _show(io::IOStream, #unused#::MIME{Symbol("image/png")}, plt::WARNING: importing deprecated binding Colors.RGB1 into PlotUtils.
WARNING: importing deprecated binding Colors.RGB1 into Plots.
WARNING: importing deprecated binding Colors.RGB4 into PlotUtils.
WARNING: importing deprecated binding Colors.RGB4 into Plots.
Plots.Plot{Plots.GRBackend})
    @ Plots D:\a\Plots.jl\Plots.jl\src\backends\gr.jl:2180
 [10] #invokelatest#2
    @ .\essentials.jl:729 [inlined]
 [11] invokelatest
    @ .\essentials.jl:726 [inlined]
 [12] show
    @ D:\a\Plots.jl\Plots.jl\src\output.jl:227 [inlined]
 [13] #281
    @ D:\a\Plots.jl\Plots.jl\src\output.jl:6 [inlined]
 [14] open(::Plots.var"#281#282"{Plots.Plot{Plots.GRBackend}}, ::String, ::Vararg{String}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base .\io.jl:384
 [15] open
    @ .\io.jl:381 [inlined]
 [16] png(plt::Plots.Plot{Plots.GRBackend}, fn::String)
    @ Plots D:\a\Plots.jl\Plots.jl\src\output.jl:4
 [17] savefig(plt::Plots.Plot{Plots.GRBackend}, fn::String)
    @ Plots D:\a\Plots.jl\Plots.jl\src\output.jl:139
 [18] var"##1#313"()
    @ Plots D:\a\Plots.jl\Plots.jl\src\precompilation.jl:20
 [19] top-level scope
    @ D:\a\Plots.jl\Plots.jl\src\precompilation.jl:25
 [20] eval
    @ .\boot.jl:368 [inlined]
 [21] eval
    @ D:\a\Plots.jl\Plots.jl\src\Plots.jl:1 [inlined]
 [22] _broadcast_getindex_evalf
    @ .\broadcast.jl:670 [inlined]
 [23] _broadcast_getindex
    @ .\broadcast.jl:643 [inlined]
 [24] getindex
    @ .\broadcast.jl:597 [inlined]
 [25] copy(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Tuple{Base.OneTo{Int64}}, typeof(Plots.eval), Tuple{Vector{Expr}}})
    @ Base.Broadcast .\broadcast.jl:899
 [26] materialize
    @ .\broadcast.jl:860 [inlined]
 [27] macro expansion
    @ D:\a\Plots.jl\Plots.jl\src\precompilation.jl:32 [inlined]
 [28] macro expansion
    @ C:\Users\runneradmin\.julia\packages\SnoopPrecompile\UWvXF\src\SnoopPrecompile.jl:51 [inlined]
 [29] (::Plots.var"#574#575")()
    @ Plots D:\a\Plots.jl\Plots.jl\src\precompilation.jl:29
 [30] withenv(f::Plots.var"#574#575", keyvals::Pair{String, String})
    @ Base .\env.jl:172
 [31] macro expansion
    @ D:\a\Plots.jl\Plots.jl\src\precompilation.jl:28 [inlined]
 [32] macro expansion
    @ C:\Users\runneradmin\.julia\packages\SnoopPrecompile\UWvXF\src\SnoopPrecompile.jl:107 [inlined]
 [33] top-level scope
    @ D:\a\Plots.jl\Plots.jl\src\precompilation.jl:4
 [34] include(mod::Module, _path::String)
    @ Base .\Base.jl:419
 [35] include(x::String)
    @ Plots D:\a\Plots.jl\Plots.jl\src\Plots.jl:1
 [36] top-level scope
    @ D:\a\Plots.jl\Plots.jl\src\Plots.jl:203
 [37] include
    @ .\Base.jl:419 [inlined]
 [38] 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)
    @ Base .\loading.jl:1554
 [39] top-level scope
    @ stdin:1
in expression starting at D:\a\Plots.jl\Plots.jl\src\precompilation.jl:3
in expression starting at D:\a\Plots.jl\Plots.jl\src\Plots.jl:1
in expression starting at stdin:1
ERROR: LoadError: Failed to precompile Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] to C:\Users\runneradmin\.julia\compiled\v1.8\Plots\jl_91B7.tmp.
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:35
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base .\loading.jl:1707
  [3] compilecache
    @ .\loading.jl:1651 [inlined]
  [4] _require(pkg::Base.PkgId)
    @ Base .\loading.jl:1337
  [5] _require_prelocked(uuidkey::Base.PkgId)
    @ Base .\loading.jl:1200
  [6] macro expansion
    @ .\loading.jl:1180 [inlined]
  [7] macro expansion
    @ .\lock.jl:223 [inlined]
  [8] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:1144
  [9] include(fname::String)
    @ Base.MainInclude .\client.jl:476
 [10] top-level scope
    @ none:6
in expression starting at D:\a\Plots.jl\Plots.jl\test\runtests.jl:2
ERROR: LoadError: Package Plots errored during testing
Stacktrace:
 [1] pkgerror(msg::String)
   @ Pkg.Types C:\hostedtoolcache\windows\julia\1.8.2\x64\share\julia\stdlib\v1.8\Pkg\src\Types.jl:67
 [2] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
   @ Pkg.Operations C:\hostedtoolcache\windows\julia\1.8.2\x64\share\julia\stdlib\v1.8\Pkg\src\Operations.jl:1813
 [3] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Vector{String}, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::Base.Pairs{Symbol, IOContext{Base.PipeEndpoint}, Tuple{Symbol}, NamedTuple{(:io,), Tuple{IOContext{Base.PipeEndpoint}}}})
   @ Pkg.API C:\hostedtoolcache\windows\julia\1.8.2\x64\share\julia\stdlib\v1.8\Pkg\src\API.jl:434
 [4] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::IOContext{Base.PipeEndpoint}, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version), Tuple{Bool, Vector{String}, Bool}}})
   @ Pkg.API C:\hostedtoolcache\windows\julia\1.8.2\x64\share\julia\stdlib\v1.8\Pkg\src\API.jl:156
 [5] test(; name::Nothing, uuid::Nothing, version::Nothing, url::Nothing, rev::Nothing, path::Nothing, mode::Pkg.Types.PackageMode, subdir::Nothing, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version), Tuple{Bool, Vector{String}, Bool}}})
   @ Pkg.API C:\hostedtoolcache\windows\julia\1.8.2\x64\share\julia\stdlib\v1.8\Pkg\src\API.jl:171
 [6] top-level scope
   @ D:\a\_actions\julia-actions\julia-runtest\latest\test_harness.jl:15
 [7] include(fname::String)
   @ Base.MainInclude .\client.jl:476
 [8] top-level scope
   @ none:1
in expression starting at D:\a\_actions\julia-actions\julia-runtest\latest\test_harness.jl:7
Error: Process completed with exit code 1.

(I can only test this through ci: I'm on linux and do not have access to a windows machine).

Metadata

Metadata

Assignees

No one assigned

    Labels

    regressionRegression in behavior compared to a previous versionsystem:windowsAffects only Windows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions