GtkPaned freezes when destroyed
Starting from yesterday main, running Builder with GTK4 freezes on what seems to be an infinite loop in GtkPaned:
12:57:30.6371 Gtk[ 21]: CRITICAL: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed
12:57:30.6371 ^C
Thread 1 "gnome-builder" received signal SIGINT, Interrupt.
0x00007ffff2307e8d in write () from /usr/lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff2307e8d in write () at /usr/lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff7ae63b3 in g_io_unix_write () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff7a81765 in g_io_channel_flush () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff7a5c8a3 in g_ptr_array_foreach () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x000055555568737d in ide_log_handler (log_domain=<optimized out>, log_level=<optimized out>, message=0x555558e1f420 "gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed", user_data=<optimized out>) at ../src/libide/core/ide-log.c:257
#5 0x00007ffff7a982bb in g_logv () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6 0x00007ffff7a98593 in g_log () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7 0x00007ffff73321ea in gtk_widget_get_parent () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#8 0x00007ffff7228591 in gtk_paned_set_focus_child () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#9 0x00007ffff734e08c in synthesize_focus_change_events () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff734f5f5 in gtk_window_update_pointer_focus_on_state_change () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff732f972 in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff7335008 in gtk_widget_real_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#13 0x00007ffff72640be in gtk_scrolled_window_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff7b8c649 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff7ba80ff in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007ffff732f96a in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#18 0x00007ffff7335008 in gtk_widget_real_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#19 0x00007ffff7b8c649 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007ffff7ba80ff in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x00007ffff732f96a in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#23 0x00007ffff7335008 in gtk_widget_real_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#24 0x00007ffff7b8c649 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007ffff7ba80ff in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ffff732f96a in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#28 0x00007ffff7335008 in gtk_widget_real_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#29 0x00007ffff7b8c649 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff7ba80ff in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007ffff732f96a in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#33 0x00007ffff7335008 in gtk_widget_real_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#34 0x00007ffff7b8c649 in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#35 0x00007ffff7ba80ff in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#36 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#37 0x00007ffff732f96a in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#38 0x00007ffff7335008 in gtk_widget_real_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#39 0x00007ffff7b8c71a in _g_closure_invoke_va () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007ffff7ba80ff in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007ffff732f96a in gtk_widget_unmap () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#43 0x00007ffff733b7c0 in gtk_widget_set_child_visible () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#44 0x00007ffff72903f4 in gtk_stack_progress_updated () at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#45 0x00007ffff6a193da in panel_frame_notify_selected_page_cb (self=0x55555a111470, pspec=<optimized out>, tab_view=<optimized out>) at ../src/panel-frame.c:261
#46 0x00007ffff7b8c502 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#47 0x00007ffff7ba146f in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#48 0x00007ffff7ba8135 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#49 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#50 0x00007ffff7b909d4 in g_object_dispatch_properties_changed () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#51 0x00007ffff7b93b58 in g_object_notify_by_pspec () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#52 0x00007ffff6ab3acd in detach_page () at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#53 0x00007ffff6ab4ac1 in close_page_cb () at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#54 0x00007ffff283e056 in ffi_call_unix64 () at /usr/lib/x86_64-linux-gnu/libffi.so.8
#55 0x00007ffff283c07b in ffi_call_int () at /usr/lib/x86_64-linux-gnu/libffi.so.8
#56 0x00007ffff7b8cf9f in g_cclosure_marshal_generic () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#57 0x00007ffff7b8c502 in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#58 0x00007ffff7ba12e3 in signal_emit_unlocked_R.isra.0 () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#59 0x00007ffff7ba7a66 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#60 0x00007ffff7ba8303 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#61 0x00007ffff6ab4947 in adw_tab_view_close_page () at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#62 0x00005555557a3898 in destroy_widget_in_idle (widget=0x55555b0115f0) at ../src/libide/terminal/ide-terminal-page.c:83
#63 0x00007ffff7a905d1 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007ffff7a90b28 in g_main_context_iterate.constprop () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#65 0x00007ffff7a90bc3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007ffff7cd291d in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#67 0x000055555564a521 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:313
I think this is a regression from adba0b97 somehow.