Skip to content

Infinite recursion bug #330

@ph-kev

Description

@ph-kev

When updating to GeoMakie v0.7.13, I am suddenly getting a StackOverflow error compared to GeoMakie v0.7.12. I am also not sure if this is a bug with Makie or not.

This is the error that I am getting.

Error message

ERROR: StackOverflowError:
Stacktrace:
     [1] _similar_for
       @ ./array.jl:670 [inlined]
     [2] _collect(c::Vector{…}, itr::Base.Generator{…}, ::Base.EltypeUnknown, isz::Base.HasShape{…})
       @ Base ./array.jl:816
     [3] collect_similar(cont::Vector{GeometryBasics.Point{…}}, itr::Base.Generator{Vector{…}, Makie.var"#707#708"{…}})
       @ Base ./array.jl:720
     [4] map(f::Function, A::Vector{GeometryBasics.Point{3, Float32}})
       @ Base ./abstractarray.jl:3371
     [5] plot_to_screen(plot::MakieCore.Text{Tuple{Vector{GeometryBasics.Point{}}}}, points::Vector{GeometryBasics.Point{3, Float32}})
       @ Makie ~/.julia/packages/Makie/Y3ABD/src/basic_recipes/error_and_rangebars.jl:264
     [6] (::Makie.var"#2366#2370"{})(segs::Vector{…}, pos::Vector{…}, ::StaticArraysCore.SMatrix{…}, ::GeometryBasics.HyperRectangle{…}, ::Nothing, transf::Function, space::Symbol)
       @ Makie ~/.julia/packages/Makie/Y3ABD/src/basic_recipes/text.jl:82
     [7] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
     [8] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
     [9] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [10] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [11] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [12] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [13] #70
       @ ./tuple.jl:692 [inlined]
    [14] BottomRF
       @ ./reduce.jl:86 [inlined]
    [15] afoldl
       @ ./operators.jl:553 [inlined]
    [16] _foldl_impl
       @ ./reduce.jl:68 [inlined]
    [17] foldl_impl
       @ ./reduce.jl:48 [inlined]
    [18] mapfoldl_impl
       @ ./reduce.jl:44 [inlined]
    [19] mapfoldl
       @ ./reduce.jl:175 [inlined]
    [20] foldl
       @ ./reduce.jl:198 [inlined]
    [21] foreach
       @ ./tuple.jl:692 [inlined]
    [22] (::Makie.var"#312#313"{UnionAll, Tuple{}})(kw::Vector{Pair{…}}, args::GeometryBasics.Point{3, Float32})
       @ Makie ~/.julia/packages/Makie/Y3ABD/src/interfaces.jl:190
    [23] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
    [24] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
    [25] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [26] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [27] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [28] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [29] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
    [30] (::Makie.var"#1994#1996"{})(bbox::GeometryBasics.HyperRectangle{…}, pad::NTuple{…})
       @ Makie ~/.julia/packages/Makie/Y3ABD/src/makielayout/blocks/label.jl:48
    [31] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
    [32] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
    [33] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [34] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [35] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [36] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [37] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
    [38] update_computedbbox!(computedbbox::Observables.Observable{…}, suggestedbbox::GeometryBasics.HyperRectangle{…}, alignment::Tuple{…}, reporteddimensions::GridLayoutBase.Dimensions, alignmode::GridLayoutBase.Inside, protrusions::GridLayoutBase.RectSides{…}, sizeattrs::Observables.Observable{…}, autosizeobservable::Observables.Observable{…})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/layoutobservables.jl:356
    [39] (::GridLayoutBase.var"#106#108"{})(sbbox::GeometryBasics.HyperRectangle{…}, ali::Tuple{…})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/layoutobservables.jl:218
    [40] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
    [41] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
    [42] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [43] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [44] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [45] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [46] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
    [47] align_to_bbox!(gl::GridLayoutBase.GridLayout, suggestedbbox::GeometryBasics.HyperRectangle{2, Float32})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1096
    [48] (::GridLayoutBase.var"#11#12"{GridLayoutBase.GridLayout})(bbox::GeometryBasics.HyperRectangle{2, Float32})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:158
    [49] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [50] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [51] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [52] update!(gl::GridLayoutBase.GridLayout)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:193
    [53] update!
       @ ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1525 [inlined]
    [54] update!(gl::GridLayoutBase.GridLayout)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:204
    [55] update!
       @ ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1525 [inlined]
    [56] (::GridLayoutBase.var"#14#15"{GridLayoutBase.GridContent{}, GeoMakie.GeoAxis})(c::GridLayoutBase.Dimensions)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:261
    [57] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [58] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [59] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [60] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
    [61] (::Observables.MapCallback)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:436
--- the above 5 lines are repeated 2 more times ---
    [72] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [73] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [74] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [75] (::GeoMakie.var"#38#53"{})(spine::Vector{…}, offset::Float64, size::Float64)
       @ GeoMakie ~/.julia/packages/GeoMakie/vU4FE/src/geoaxis.jl:676
    [76] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
    [77] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
    [78] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [79] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [80] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [81] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [82] setindex!
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123 [inlined]
    [83] (::GeoMakie.var"#34#46"{})(spines::GeoMakie.Spines, pv::StaticArraysCore.SMatrix{…}, area::GeometryBasics.HyperRectangle{…})
       @ GeoMakie ~/.julia/packages/GeoMakie/vU4FE/src/geoaxis.jl:658
    [84] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
    [85] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
    [86] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [87] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [88] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [89] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [90] (::GeoMakie.var"#33#45"{})(user_xticks::MakieCore.Automatic, user_yticks::MakieCore.Automatic, trans::Proj.Transformation, fl::GeometryBasics.HyperRectangle{…}, vp::GeometryBasics.HyperRectangle{…})
       @ GeoMakie ~/.julia/packages/GeoMakie/vU4FE/src/geoaxis.jl:609
    [91] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
    [92] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
    [93] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
    [94] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
    [95] invokelatest
       @ ./essentials.jl:1052 [inlined]
    [96] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
    [97] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
    [98] (::Observables.MapCallback)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:436
--- the above 5 lines are repeated 1 more time ---
   [104] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
   [105] invokelatest
       @ ./essentials.jl:1052 [inlined]
   [106] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
   [107] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
   [108] update_computedbbox!(computedbbox::Observables.Observable{…}, suggestedbbox::GeometryBasics.HyperRectangle{…}, alignment::Tuple{…}, reporteddimensions::GridLayoutBase.Dimensions, alignmode::GridLayoutBase.Inside, protrusions::GridLayoutBase.RectSides{…}, sizeattrs::Observables.Observable{…}, autosizeobservable::Observables.Observable{…})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/layoutobservables.jl:356
   [109] (::GridLayoutBase.var"#106#108"{})(sbbox::GeometryBasics.HyperRectangle{…}, ali::Tuple{…})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/layoutobservables.jl:218
   [110] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
       @ Base ./essentials.jl:1055
   [111] invokelatest(::Any, ::Any, ::Vararg{Any})
       @ Base ./essentials.jl:1052
   [112] (::Observables.OnAny)(value::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
   [113] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
   [114] invokelatest
       @ ./essentials.jl:1052 [inlined]
   [115] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
   [116] setindex!(observable::Observables.Observable, val::Any)
       @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
   [117] align_to_bbox!(gl::GridLayoutBase.GridLayout, suggestedbbox::GeometryBasics.HyperRectangle{2, Float32})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1096
   [118] (::GridLayoutBase.var"#11#12"{GridLayoutBase.GridLayout})(bbox::GeometryBasics.HyperRectangle{2, Float32})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:158
--- the above 15 lines are repeated 1 more time ---
--- the above 85 lines are repeated 558 more times ---
 [47564] #invokelatest#2
       @ ./essentials.jl:1055 [inlined]
 [47565] invokelatest
       @ ./essentials.jl:1052 [inlined]
 [47566] notify
       @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [47567] update!(gl::GridLayoutBase.GridLayout)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:193
 [47568] add_to_gridlayout!(g::GridLayoutBase.GridLayout, gc::GridLayoutBase.GridContent{GridLayoutBase.GridLayout})
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:293
 [47569] add_content!(g::GridLayoutBase.GridLayout, content::GridLayoutBase.GridLayout, rows::UnitRange{…}, cols::UnitRange{…}, side::GridLayoutBase.Inner)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1551
 [47570] setindex!(g::GridLayoutBase.GridLayout, content::GridLayoutBase.GridLayout, rows::UnitRange{…}, cols::UnitRange{…}, side::GridLayoutBase.Inner)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1445
 [47571] setindex!(gp::GridLayoutBase.GridPosition, element::GridLayoutBase.GridLayout)
       @ GridLayoutBase ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:1584
 [47572] #GridLayout#9
       @ ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:15 [inlined]
 [47573] GridLayout
       @ ~/.julia/packages/GridLayoutBase/xvxWi/src/gridlayout.jl:14 [inlined]

The error is happening at

titlelayout = CairoMakie.GridLayout(
        fig_sim_ann[-1, 1:length(groups)],
        halign = :center,
        tellwidth = false,
    )

The entire script can be found here: https://github.com/CliMA/ClimaLand.jl/blob/main/experiments/long_runs/leaderboard/leaderboard.jl in compute_seasonal_leaderboard. I will try to see if I can make a simpler reproducer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions