JuliaPlots / Plots.jl

Powerful convenience for Julia visualizations and data analysis
https://docs.juliaplots.org
Other
1.83k stars 354 forks source link

[BUG] Plots segfaults in GR #4302

Closed Keno closed 2 years ago

Keno commented 2 years ago

The below test case crashes in GR. Sometimes in longjmp, sometimes in process_glyphs.

Details

Note: This may not be a correct use of the API, but in any case, ideally it shouldn't crash.

using Pkg
Pkg.add(url="https://github.com/CedarEDA/MDMReader.jl.git")
Pkg.add(url="https://github.com/CedarEDA/skywater-pdk-sky130-raw-data.git")
Pkg.add("PlutoUI")
Pkg.add("Plots")
Pkg.add("StatsPlots")

using MDMReader, var"skywater-pdk-sky130-raw-data", PlutoUI, Plots, StatsPlots
cells_dir = joinpath(dirname(pathof(var"skywater-pdk-sky130-raw-data")), "../sky130_fd_pr/cells")
device = "esd_nfet_01v8"
file = "sky130_fd_pr__esd_nfet_01v8_w20p35u_l0p165u_m1(4044_4_5_IDVD).mdm"
mdm = MDMReader.parse_mdmfile(joinpath(cells_dir, device, file));
@df mdm.data plot(:VD, :ID, label=[:VG, :VS, :VB])

Backends

This bug occurs on ( insert x below )

Backend yes no untested
gr (default) x
pyplot (different error)
plotlyjs x
pgfplotsx x
unicodeplots (different error)
inspectdr x
gaston x

Versions

(@v1.9) pkg> st -m Plots GR UnicodePlots
Status `~/.julia/environments/v1.9/Manifest.toml`
  [28b8d3ca] GR v0.66.0
  [91a5bcdd] Plots v1.31.6
  [b8865327] UnicodePlots v3.0.4

Output of versioninfo():

julia> versioninfo()
Julia Version 1.9.0-DEV.1098
Commit 44f8084ccc* (2022-08-08 15:15 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.0.1)
  CPU: 10 × Apple M1 Max
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.5 (ORCJIT, apple-m1)
  Threads: 1 on 8 virtual cores
ViralBShah commented 2 years ago

Should this be filed in GR.jl?

BeastyBlacksmith commented 2 years ago
julia> pl = @df mdm.data plot(:VD, :ID, label=[:VG, :VS, :VB]);

julia> pl[1][1][:label]
3-element Vector{String}:
 "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0," ⋯ 2456 bytes ⋯ " 1.8, 1.8, 1.8, 1.8, 1.8, 1.8]"
 "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0," ⋯ 2160 bytes ⋯ " 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]"
 "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0," ⋯ 2382 bytes ⋯ " -0.9, -0.9, -0.9, -0.9, -0.9]"

Is probably not what you wanted. I suspect this is another case of https://github.com/JuliaPlots/Plots.jl/issues/4198

BeastyBlacksmith commented 2 years ago

Should be fixed with GR 0.66.2