ProfileView crashes when showing a garbage collector tab

I’m profiling a process that I calculated should take a little over two minutes (just counting the sleeps) to find out why it actually takes ten minutes. I run @profview on it; some minutes later a window appears. The window has tabs for all, interactive, each CPU thread, and “foreign gc” threads. When I get to the garbage collector tabs, the window stops responding, and it dumps the following to the terminal:

julia> @profview <snip name of function>()
┌ Warning: The profile data buffer is full; profiling probably terminated
│ before your program finished. To profile for longer runs, call
│ `Profile.init()` with a larger buffer and/or larger delay.
└ @ Profile ~/.julia/juliaup/julia-1.12.5+0.x64.linux.gnu/share/julia/stdlib/v1.12/Profile/src/Profile.jl:693
Gtk4.GtkWindowLeaf(accessible-role=GTK_ACCESSIBLE_ROLE_WINDOW, name="", parent, root, width-request=-1, height-request=-1, visible=true, sensitive=true, can-focus=true, has-focus=false, can-target=true, focus-on-click=true, focusable=false, has-default=false, receives-default=false, cursor, has-tooltip=false, tooltip-markup=nothing, tooltip-text=nothing, opacity=1.000000, overflow=GTK_OVERFLOW_HIDDEN, halign=GTK_ALIGN_FILL, valign=GTK_ALIGN_FILL, margin-start=0, margin-end=0, margin-top=0, margin-bottom=0, hexpand=false, vexpand=false, hexpand-set=false, vexpand-set=false, scale-factor=1, css-name="window", css-classes, layout-manager, limit-events=false, title="Profile  -  23:46:53", resizable=true, modal=false, default-width=800, default-height=600, destroy-with-parent=false, hide-on-close=false, icon-name=nothing, display, decorated=true, deletable=true, transient-for, application, default-widget, focus-widget, child, titlebar, handle-menubar-accel=true, is-active=true, suspended=false, startup-id, mnemonics-visible=false, focus-visible=false, maximized=false, fullscreened=false)

julia> ┌ Warning: Error in @guarded callback
│   exception =
│    ArgumentError: Infimum not defined for empty intervals
│    Stacktrace:
│      [1] infimum
│        @ ~/.julia/packages/IntervalSets/K4CRG/src/IntervalSets.jl:227 [inlined]
│      [2] minimum
│        @ ~/.julia/packages/IntervalSets/K4CRG/src/IntervalSets.jl:334 [inlined]
│      [3] BoundingBox
│        @ ~/.julia/packages/GtkObservables/sClCQ/src/GtkObservables.jl:134 [inlined]
│      [4] (::ProfileView.var"#viewprof_func##3#viewprof_func##4"{FlameGraphs.FlameColors, GtkObservables.Canvas{GtkObservables.UserUnit}, Int64, Cairo.CairoSurfaceImage{ColorTypes.RGB24}, Int64, ProfileView.var"#row_height#viewprof_func##2", ProfileView.var"#device_bb#viewprof_func##1"{Symbol}, ProfileView.var"#gettag#viewprof_func##0", IndirectArrays.IndirectArray{Base.StackTraces.StackFrame, 2, Int64, Matrix{Int64}, Vector{Base.StackTraces.StackFrame}}})(widget::Gtk4.GtkCanvas, r::GtkObservables.ZoomRegion{Float64}, _show_labels::Bool)
│        @ ProfileView ~/.julia/packages/ProfileView/v8kk7/src/ProfileView.jl:398
│      [5] macro expansion
│        @ ~/.julia/packages/GtkObservables/sClCQ/src/graphics_interaction.jl:408 [inlined]                                                                                     
│      [6] (::GtkObservables.var"#223#224"{ProfileView.var"#viewprof_func##3#viewprof_func##4"{FlameGraphs.FlameColors, GtkObservables.Canvas{GtkObservables.UserUnit}, Int64, Cairo.CairoSurfaceImage{ColorTypes.RGB24}, Int64, ProfileView.var"#row_height#viewprof_func##2", ProfileView.var"#device_bb#viewprof_func##1"{Symbol}, ProfileView.var"#gettag#viewprof_func##0", IndirectArrays.IndirectArray{Base.StackTraces.StackFrame, 2, Int64, Matrix{Int64}, Vector{Base.StackTraces.StackFrame}}}, Tuple{Observables.Observable{GtkObservables.ZoomRegion{Float64}}, Observables.Observable{Bool}}})(widget::Gtk4.GtkCanvas)
│        @ GtkObservables ~/.julia/packages/Gtk4/IynXD/src/GLib/signals.jl:132
│      [7] draw(widget::Gtk4.GtkCanvas)
│        @ Gtk4 ~/.julia/packages/Gtk4/IynXD/src/cairo.jl:117
│      [8] _canvas_on_resize(::Ptr{Gtk4.GLib.GObject}, width::Int32, height::Int32, canvas::Gtk4.GtkCanvas)
│        @ Gtk4 ~/.julia/packages/Gtk4/IynXD/src/cairo.jl:31
│      [9] iterate_loop
│        @ ~/.julia/packages/Gtk4/IynXD/src/GLib/loop.jl:85 [inlined]
│     [10] (::Base.var"#634#635"{typeof(Gtk4.GLib.iterate_loop), Timer})()
│        @ Base ./asyncevent.jl:361
└ @ GtkObservables ~/.julia/packages/Gtk4/IynXD/src/GLib/signals.jl:134
Error in Timer:
ArgumentError: Infimum not defined for empty intervals
Stacktrace:
 [1] infimum
   @ ~/.julia/packages/IntervalSets/K4CRG/src/IntervalSets.jl:227 [inlined]
 [2] minimum
   @ ~/.julia/packages/IntervalSets/K4CRG/src/IntervalSets.jl:334 [inlined]
 [3] BoundingBox
   @ ~/.julia/packages/GtkObservables/sClCQ/src/GtkObservables.jl:134 [inlined]
 [4] (::ProfileView.var"#viewprof_func##5#viewprof_func##6"{FlameGraphs.FlameColors, GtkObservables.Canvas{GtkObservables.UserUnit}, Int64, Symbol, Cairo.CairoSurfaceImage{ColorTypes.RGB24}, Observables.Observable{Bool}, Observables.Observable{GtkObservables.ZoomRegion{Float64}}, Int64, ProfileView.var"#row_height#viewprof_func##2", ProfileView.var"#device_bb#viewprof_func##1"{Symbol}, ProfileView.var"#gettag#viewprof_func##0", Gtk4.GtkEntryLeaf, Base.RefValue{Graphics.BoundingBox}, IndirectArrays.IndirectArray{Base.StackTraces.StackFrame, 2, Int64, Matrix{Int64}, Vector{Base.StackTraces.StackFrame}}})(btn::GtkObservables.MouseButton{GtkObservables.UserUnit})
   @ ProfileView ~/.julia/packages/ProfileView/v8kk7/src/ProfileView.jl:461
 [5] notify
   @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [6] setindex!
   @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123 [inlined]
 [7] mousemove_cb(ecp::Ptr{Gtk4.GLib.GObject}, x::Float64, y::Float64, handler::GtkObservables.MouseHandler{GtkObservables.UserUnit})
   @ GtkObservables ~/.julia/packages/GtkObservables/sClCQ/src/graphics_interaction.jl:270
 [8] iterate_loop
   @ ~/.julia/packages/Gtk4/IynXD/src/GLib/loop.jl:85 [inlined]
 [9] (::Base.var"#634#635"{typeof(Gtk4.GLib.iterate_loop), Timer})()
   @ Base ./asyncevent.jl:361

When I switch back to the virtual desktop, the window is black and does not respond when I try to close it. To close the window, I have to exit Julia.

I’m running Julia 1.12.5, installed with juliaup, and tried this on both an AMD Ryzen and an Intel Core i9, with the same result except for the number of thread tabs.