Crash when trying to rejoin fractal room
Today Fractal 5.beta2 crashed when trying to join #fractal:gnome.org. I had searched for "fractal" which displayed a result from my historical rooms list, then clicked Rejoin Room. Then it crashed.
Steps to reproduce
- Open Fractal
- Enter a room
- ...
Information
-
This bug is reproducible from the latest nightly build - Fractal Version: 5.beta2
- OS Version: Fedora 39
- Installation Source: Flathub beta
- Homeserver: gnome.org
#0 0x00007f6c7ec9fd4a in gtk_widget_is_ancestor
(widget=widget@entry=0x561efaddfba0, ancestor=ancestor@entry=0x561ef7dbddc0 [GtkLabel])
at ../gtk/gtkwidget.c:7212
__inst = 0x561efaddfba0
__r = <optimized out>
_g_boolean_var_128 = <optimized out>
__func__ = "gtk_widget_is_ancestor"
#1 0x00007f6c7eba3f3c in gtk_label_grab_focus (widget=0x561ef7dbddc0 [GtkLabel]) at ../gtk/gtklabel.c:1677
self = 0x561ef7dbddc0 [GtkLabel]
select_on_focus = 32764
prev_focus = 0x561efaddfba0
#2 0x00007f6c7eba21a8 in gtk_label_focus (widget=0x561ef7dbddc0 [GtkLabel], direction=GTK_DIR_TAB_FORWARD)
at ../gtk/gtklabel.c:1796
self = 0x561ef7dbddc0 [GtkLabel]
info = 0x561ef8162e90
focus_link = <optimized out>
#3 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7dbc140 [GtkBox], direction=GTK_DIR_TAB_FORWARD)
at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7dbddc0 [GtkLabel]
focus_order = 0x561ef8387460
focus_child = 0x0
i = 1
ret = 0
#4 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7dbbbb0 [RoomTitle], direction=GTK_DIR_TAB_FORWARD)
at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7dbc140 [GtkBox]
focus_order = 0x561efa1249e0
focus_child = 0x0
i = 0
ret = 0
#5 0x0000561ef3d6d2b6 in gtk4::subclass::widget::{impl#6}::parent_focus<fractal::components::room_title::imp::RoomTitle> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:299
f = 0xaaaaaaaaaaaaaaaa
parent_class = <optimized out>
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#6 gtk4::subclass::widget::WidgetImpl::focus<fractal::components::room_title::imp::RoomTitle>
(direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:120
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#7 gtk4::subclass::widget::widget_focus<fractal::components::room_title::imp::RoomTitle>
(ptr=0x561efaddfba0, direction_type_ptr=-144248096) at vendor/gtk4/src/subclass/widget.rs:671
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#8 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7db1ae0 [GtkCenterBox], direction=GTK_DIR_TAB_FORWARD)
at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7dbbbb0 [RoomTitle]
focus_order = 0x561efb0c6ba0
focus_child = 0x0
i = 1
ret = 0
#9 0x00007f6c7ecaf65a in gtk_widget_focus_move
--Type <RET> for more, q to quit, c to continue without paging--c
(widget=0x561ef7db0ee0 [GtkWindowHandle], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7db1ae0 [GtkCenterBox]
focus_order = 0x561efb75d100
focus_child = 0x0
i = 0
ret = 0
#10 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7db0730 [AdwHeaderBar], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7db0ee0 [GtkWindowHandle]
focus_order = 0x561efd0faeb0
focus_child = 0x0
i = 0
ret = 0
#11 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7dafdf0 [GtkBox], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7db0730 [AdwHeaderBar]
focus_order = 0x561efd18d780
focus_child = 0x0
i = 0
ret = 0
#12 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7c9dea0 [ContentRoomHistory], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7dafdf0 [GtkBox]
focus_order = 0x561efceb5360
focus_child = 0x0
i = 0
ret = 0
#13 0x0000561ef3d6cd76 in gtk4::subclass::widget::{impl#6}::parent_focus<fractal::session::view::content::room_history::imp::RoomHistory> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:299
f = 0xaaaaaaaaaaaaaaaa
parent_class = <optimized out>
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#14 gtk4::subclass::widget::WidgetImpl::focus<fractal::session::view::content::room_history::imp::RoomHistory> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:120
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#15 gtk4::subclass::widget::widget_focus<fractal::session::view::content::room_history::imp::RoomHistory> (ptr=0x561efaddfba0, direction_type_ptr=-144248096) at vendor/gtk4/src/subclass/widget.rs:671
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#16 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7a401e0 [GtkStack], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7c9dea0 [ContentRoomHistory]
focus_order = 0x561efb1a96a0
focus_child = 0x0
i = 0
ret = 0
#17 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7c83b90 [Content], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7a401e0 [GtkStack]
focus_order = 0x561efaf49bc0
focus_child = 0x0
i = 0
ret = 0
#18 0x0000561ef3d6d436 in gtk4::subclass::widget::{impl#6}::parent_focus<fractal::session::view::content::imp::Content> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:299
f = 0xaaaaaaaaaaaaaaaa
parent_class = <optimized out>
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#19 gtk4::subclass::widget::WidgetImpl::focus<fractal::session::view::content::imp::Content> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:120
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#20 gtk4::subclass::widget::widget_focus<fractal::session::view::content::imp::Content> (ptr=0x561efaddfba0, direction_type_ptr=-144248096) at vendor/gtk4/src/subclass/widget.rs:671
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#21 0x00007f6c7ecaf65a in gtk_widget_focus_move (widget=0x561ef7bc40d0 [AdwLeaflet], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:480
child = 0x561ef7c83b90 [Content]
focus_order = 0x561efa9c36e0
focus_child = 0x0
i = 2
ret = 0
#22 0x00007f6c7ecaf613 in gtk_widget_focus_move (widget=0x561ef7a0b6b0 [GtkOverlay], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:474
child = 0x561ef7bc40d0 [AdwLeaflet]
focus_order = 0x561efd27fb90
focus_child = 0x0
i = 0
ret = 0
#23 0x00007f6c7ecaf613 in gtk_widget_focus_move (widget=0x561ef79e85c0 [GtkStack], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:474
child = 0x561ef7a0b6b0 [GtkOverlay]
focus_order = 0x561ef9e8aea0
focus_child = 0x0
i = 0
ret = 0
#24 0x00007f6c7ecaf613 in gtk_widget_focus_move (widget=0x561ef79dd330 [SessionView], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:474
child = 0x561ef79e85c0 [GtkStack]
focus_order = 0x561ef91b8610
focus_child = 0x0
i = 0
ret = 0
#25 0x0000561ef3d6dc46 in gtk4::subclass::widget::{impl#6}::parent_focus<fractal::session::view::session_view::imp::SessionView> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:299
f = 0xaaaaaaaaaaaaaaaa
parent_class = <optimized out>
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#26 gtk4::subclass::widget::WidgetImpl::focus<fractal::session::view::session_view::imp::SessionView> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:120
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#27 gtk4::subclass::widget::widget_focus<fractal::session::view::session_view::imp::SessionView> (ptr=0x561efaddfba0, direction_type_ptr=-144248096) at vendor/gtk4/src/subclass/widget.rs:671
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#28 0x00007f6c7ecaf613 in gtk_widget_focus_move (widget=0x561ef7926bb0 [GtkStack], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:474
child = 0x561ef79dd330 [SessionView]
focus_order = 0x561ef94f25c0
focus_child = 0x0
i = 0
ret = 0
#29 0x00007f6c7ecaf613 in gtk_widget_focus_move (widget=0x561ef7685470 [AdwToastOverlay], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwidgetfocus.c:474
child = 0x561ef7926bb0 [GtkStack]
focus_order = 0x561efcbf08c0
focus_child = 0x0
i = 0
ret = 0
#30 0x00007f6c7e54dbfe in focus_move (direction=GTK_DIR_TAB_FORWARD, widget=0x561ef793f690 [AdwGizmo]) at ../src/adw-widget-utils.c:435
child = 0x561ef7685470 [AdwToastOverlay]
focus_order = 0x561ef9f654f0
focus_child = 0x0
i = 0
ret = 0
#31 adw_widget_focus_child (widget=0x561ef793f690 [AdwGizmo], direction=GTK_DIR_TAB_FORWARD) at ../src/adw-widget-utils.c:452
#32 0x00007f6c7ecb8dd1 in gtk_window_focus (widget=0x561ef7912840 [Window], direction=GTK_DIR_TAB_FORWARD) at ../gtk/gtkwindow.c:4924
window = 0x561ef7912840 [Window]
priv = 0x561ef7912600
child = <optimized out>
old_focus_child = 0x561ef793f690 [AdwGizmo]
parent = <optimized out>
#33 0x0000561ef3d6d886 in gtk4::subclass::widget::{impl#6}::parent_focus<fractal::window::imp::Window> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:299
f = 0xaaaaaaaaaaaaaaaa
parent_class = <optimized out>
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#34 gtk4::subclass::widget::WidgetImpl::focus<fractal::window::imp::Window> (direction_type=..., self=<optimized out>) at vendor/gtk4/src/subclass/widget.rs:120
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#35 gtk4::subclass::widget::widget_focus<fractal::window::imp::Window> (ptr=0x561efaddfba0, direction_type_ptr=-144248096) at vendor/gtk4/src/subclass/widget.rs:671
direction_type = gtk4::auto::enums::DirectionType::TabForward
instance = 0x561efaddfba0
#36 0x00007f6c7ecb5134 in maybe_unset_focus_and_default (window=0x561ef7912840 [Window]) at ../gtk/gtkwindow.c:4731
parent = 0x0
priv = 0x561ef7912600
#37 after_paint (clock=<optimized out>, window=0x561ef7912840 [Window]) at ../gtk/gtkwindow.c:4755
#41 0x00007f6c7f93b743 in <emit signal after-paint on instance 0x561ef8129960 [GdkFrameClockIdle]> (instance=instance@entry=0x561ef8129960, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffcb4305330, reg_save_area = 0x7ffcb4305270}}
#38 0x00007f6c7f920442 in g_closure_invoke (closure=0x561ef8d53670, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffcb43050d0, invocation_hint=invocation_hint@entry=0x7ffcb4305050) at ../gobject/gclosure.c:832
marshal = 0x7f6c7f922860 <g_cclosure_marshal_VOID__VOID>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x561ef8d53650
__func__ = "g_closure_invoke"
#39 0x00007f6c7f9345c8 in signal_emit_unlocked_R (node=node@entry=0x561ef7ec26a0, detail=detail@entry=0, instance=instance@entry=0x561ef8129960, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffcb43050d0) at ../gobject/gsignal.c:3812
tmp = <optimized out>
handler = 0x561ef8d38330
accumulator = 0x0
emission = {next = 0x0, instance = 0x561ef8129960, ihint = {signal_id = 305, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [void]}
hlist = <optimized out>
handler_list = 0x561ef81fac50
return_accu = 0x0
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 305
max_sequential_handler_number = 141396
return_value_altered = <optimized out>
#40 0x00007f6c7f93b575 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffcb4305250) at ../gobject/gsignal.c:3565
instance_and_params = 0x7ffcb43050d0
signal_return_type = <optimized out>
param_values = 0x7ffcb43050e8
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#42 0x00007f6c7ee45f03 in _gdk_frame_clock_emit_after_paint (frame_clock=frame_clock@entry=0x561ef8129960 [GdkFrameClockIdle]) at ../gdk/gdkframeclock.c:716
#43 0x00007f6c7ee46b07 in gdk_frame_clock_paint_idle (data=data@entry=0x561ef8129960) at ../gdk/gdkframeclockidle.c:618
clock = 0x561ef8129960 [GdkFrameClockIdle]
clock_idle = 0x561ef8129960 [GdkFrameClockIdle]
priv = 0x561ef8129850
skip_to_resume_events = 0
timings = <optimized out>
before = 8789102674932
__func__ = "gdk_frame_clock_paint_idle"
#44 0x00007f6c7ee46bf4 in gdk_frame_clock_flush_idle (data=0x561ef8129960, data@entry=<error reading variable: value has been optimized out>) at ../gdk/gdkframeclockidle.c:378
clock = 0x561ef8129960 [GdkFrameClockIdle]
clock_idle = 0x561ef8129960 [GdkFrameClockIdle]
priv = 0x561ef8129850
#45 0x00007f6c7f7d7b8f in g_timeout_dispatch (source=0x561efd8c6360, callback=<optimized out>, user_data=<optimized out>) at ../glib/gmain.c:5054
timeout_source = 0x561efd8c6360
again = <optimized out>
#46 0x00007f6c7f7d6e89 in g_main_dispatch (context=<optimized out>) at ../glib/gmain.c:3460
dispatch = 0x7f6c7f7d7b70 <g_timeout_dispatch>
prev_source = 0x0
begin_time_nsec = 8789102660615
was_in_call = 0
user_data = 0x561ef8129960
callback = 0x7f6c7ee46b90 <gdk_frame_clock_flush_idle>
cb_funcs = 0x7f6c7f8c22e0 <g_source_callback_funcs>
cb_data = 0x561efd77f8a0
need_destroy = <optimized out>
source = 0x561efd8c6360
current = 0x561ef768da40
i = 0
__func__ = "g_main_dispatch"
#47 g_main_context_dispatch (context=<optimized out>, context@entry=0x561ef767c8d0) at ../glib/gmain.c:4200
#48 0x00007f6c7f7d73e8 in g_main_context_iterate (context=context@entry=0x561ef767c8d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276
max_priority = 2147483647
timeout = 2
some_ready = 1
nfds = 2
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = 8789100515329
#49 0x00007f6c7f7d7483 in g_main_context_iteration (context=context@entry=0x561ef767c8d0, may_block=may_block@entry=1) at ../glib/gmain.c:4343
retval = <optimized out>
#50 0x00007f6c7e90236d in g_application_run (application=0x561ef775d7e0 [Application], argc=<optimized out>, argv=0x561ef77613a0) at ../gio/gapplication.c:2573
arguments = 0x561ef7763a40
status = 0
context = 0x561ef767c8d0
acquired_context = <optimized out>
__func__ = "g_application_run"
#51 0x0000561ef44bbb69 in gio::application::{impl#0}::run_with_args<fractal::application::Application, alloc::string::String> (args=..., self=<optimized out>) at vendor/gio/src/application.rs:37
argc = 1
argv = alloc::vec::Vec<&str, alloc::alloc::Global> {buf: alloc::raw_vec::RawVec<&str, alloc::alloc::Global> {ptr: core::ptr::unique::Unique<&str> {pointer: core::ptr::non_null::NonNull<&str> {pointer: 0x561ef79197d0}, _marker: core::marker::PhantomData<&str>}, cap: <optimized out>, alloc: alloc::alloc::Global}, len: 1}
app = fractal::application::Application {inner: glib::object::TypedObjectRef<fractal::application::imp::Application, libadwaita::auto::application::Application> {inner: glib::object::ObjectRef {inner: core::ptr::non_null::NonNull<gobject_sys::GObject> {pointer: 0x561ef775d7e0}}, imp: core::marker::PhantomData<fractal::application::imp::Application>, parent: core::marker::PhantomData<libadwaita::auto::application::Application>}, phantom: core::marker::PhantomData<()>}
ui_res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef766aa60}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef791fbd0}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
#52 gio::application::{impl#0}::run<fractal::application::Application> (self=<optimized out>) at vendor/gio/src/application.rs:30
app = fractal::application::Application {inner: glib::object::TypedObjectRef<fractal::application::imp::Application, libadwaita::auto::application::Application> {inner: glib::object::ObjectRef {inner: core::ptr::non_null::NonNull<gobject_sys::GObject> {pointer: 0x561ef775d7e0}}, imp: core::marker::PhantomData<fractal::application::imp::Application>, parent: core::marker::PhantomData<libadwaita::auto::application::Application>}, phantom: core::marker::PhantomData<()>}
ui_res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef766aa60}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef791fbd0}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
#53 fractal::application::Application::run (self=<optimized out>) at src/application.rs:205
app = fractal::application::Application {inner: glib::object::TypedObjectRef<fractal::application::imp::Application, libadwaita::auto::application::Application> {inner: glib::object::ObjectRef {inner: core::ptr::non_null::NonNull<gobject_sys::GObject> {pointer: 0x561ef775d7e0}}, imp: core::marker::PhantomData<fractal::application::imp::Application>, parent: core::marker::PhantomData<libadwaita::auto::application::Application>}, phantom: core::marker::PhantomData<()>}
ui_res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef766aa60}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef791fbd0}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
#54 fractal::main () at src/main.rs:62
app = fractal::application::Application {inner: glib::object::TypedObjectRef<fractal::application::imp::Application, libadwaita::auto::application::Application> {inner: glib::object::ObjectRef {inner: core::ptr::non_null::NonNull<gobject_sys::GObject> {pointer: 0x561ef775d7e0}}, imp: core::marker::PhantomData<fractal::application::imp::Application>, parent: core::marker::PhantomData<libadwaita::auto::application::Application>}, phantom: core::marker::PhantomData<()>}
ui_res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef766aa60}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
res = gio::auto::resource::Resource {inner: glib::shared::Shared<gio_sys::GResource, gio::auto::resource::Resource> {inner: core::ptr::non_null::NonNull<gio_sys::GResource> {pointer: 0x561ef791fbd0}, mm: core::marker::PhantomData<*const gio::auto::resource::Resource>}}
Unfortunately it looks like widget
in frame 0 is a dangling pointer, which is rarely fun to debug:
(gdb) print ((GObject*)widget)->ref_count
$2 = 2863311530
I notice 2863311530 is 0xAAAAAAAA. I don't know where that comes from, but it's very suspicious.
The GtkLabel widget in frame 1 looks fine:
(gdb) frame 1
(gdb) print ((GObject*)widget)->ref_count
$3 = 4
So the dangling pointer is returned by gtk_root_get_focus()
here:
static gboolean
gtk_label_grab_focus (GtkWidget *widget)
{
GtkLabel *self = GTK_LABEL (widget);
gboolean select_on_focus;
GtkWidget *prev_focus;
if (self->select_info == NULL)
return FALSE;
prev_focus = gtk_root_get_focus (gtk_widget_get_root (widget));
No clue where the bug is.