GeopJr / Tuba

Browse the Fediverse
https://tuba.geopjr.dev/
GNU General Public License v3.0
519 stars 57 forks source link

[Bug]: Crashes when going to previous screen after destroy event #1059

Closed donovanglover closed 3 weeks ago

donovanglover commented 4 weeks ago

Describe the bug

Crashes when pressing the back button after muting an account from their profile page.

Steps To Reproduce

  1. Open a profile page from the home timeline
  2. Mute the account from the dropdown
  3. Press the back button and get SIGSEGV'd

Logs and/or Screenshots

(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:51.107: Network.vala:65: GET: https://example.com/api/v1/accounts/<account>/statuses?only_media=false&exclude_replies=true&limit=20
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:51.107: Network.vala:65: GET: https://example.com/api/v1/accounts/<account>/statuses?pinned=true
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:57.422: Network.vala:65: POST: https://example.com/api/v1/accounts/<account>/mute
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:57.886: Relationship.vala:90: Performed "mute" on Relationship <account>
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:58.080: Streams.vala:131: https://example.com/api/v1/streaming?stream=user: delete for TubaViewsHome
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:58.082: Status.vala:238: Destroying Status widget
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:58.083: Item.vala:126: Destroying Attachment.Item widget
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:58.083: Status.vala:4: [OBJ] Destroyed https://example.com/users/<account_that_boosted_muted_account>/statuses/<boosted_status>/activity
(dev.geopjr.Tuba:279158): Tuba-DEBUG: 19:32:58.083: Status.vala:4: [OBJ] Destroyed https://example.org/users/<muted_account>/statuses/<status_from_muted_account>
fish: Job 1, 'LANG=en_US.UTF-8 G_MESSAGES_DEB…' terminated by signal SIGSEGV (Address boundary error)

Instance Backend

Mastodon

Operating System

NixOS unstable

Package

OS repositories

Troubleshooting information

os: NixOS 24.11 (Vicuna) prefix: /nix/store/d88ydx78bicw9g85kx4rq8jcn64v3qx2-tuba-0.8.1 flatpak: false version: 0.8.1 (production) gtk: 4.14.4 (4.14.4) libadwaita: 1.5.2 (1.5.2) libsoup: 3.4.4 (3.4.4) libgtksourceview: 5.12.1 (5.12.1)

Additional Context

Related: https://github.com/GeopJr/Tuba/issues/337

GeopJr commented 3 weeks ago

Thanks for raising this issue!

Can you reproduce it reliably? A similar situation was reported on matrix but I can't reproduce neither that or this one. It's unrelated to the delete request and I'm going to need a debugger backtrace. Here's the steps if you are interested in fetching it (though I don't know if nix complicates it):

donovanglover commented 3 weeks ago

Yes I can reproduce it every time. Hope this helps!

Thread 1 ".dev.geopjr.Tub" received signal SIGSEGV, Segmentation fault.
0x00007ffff6a9f1f9 in gtk_widget_grab_focus () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
(gdb) backtrace
#0  0x00007ffff6a9f1f9 in gtk_widget_grab_focus () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#1  0x000000000048e554 in tuba_dialogs_main_window_on_popped ()
#2  0x00007ffff7d60961 in g_cclosure_marshal_VOID__OBJECTv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#3  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#4  0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#5  0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#6  0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#7  0x00007ffff6684fa1 in pop_from_stack () from /nix/store/2mijdmb6vsjb1wlvzjmwwdqfmrmg520h-libadwaita-1.5.2/lib/libadwaita-1.so.0
#8  0x00007ffff6686bf9 in adw_navigation_view_pop () from /nix/store/2mijdmb6vsjb1wlvzjmwwdqfmrmg520h-libadwaita-1.5.2/lib/libadwaita-1.so.0
#9  0x00007ffff6686c79 in navigation_pop_cb () from /nix/store/2mijdmb6vsjb1wlvzjmwwdqfmrmg520h-libadwaita-1.5.2/lib/libadwaita-1.so.0
#10 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#11 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#12 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#13 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#14 0x00007ffff68d9839 in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#15 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#16 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#17 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#18 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#19 0x00007ffff69877ae in gtk_gesture_click_end () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#20 0x00007ffff7d606b2 in g_cclosure_marshal_VOID__BOXEDv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#21 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#22 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#23 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#24 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#25 0x00007ffff6984783 in _gtk_gesture_check_recognized () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#26 0x00007ffff6985edb in gtk_gesture_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#27 0x00007ffff6988e16 in gtk_gesture_single_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#28 0x00007ffff6955566 in gtk_event_controller_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#29 0x00007ffff6a9dd88 in gtk_widget_run_controllers () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#30 0x00007ffff6aa558e in _gtk_widget_captured_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#31 0x00007ffff69c6b8e in gtk_propagate_event_internal () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#32 0x00007ffff69c7395 in gtk_main_do_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#33 0x00007ffff6c2e25c in _gdk_marshal_BOOLEAN__POINTERv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#34 0x00007ffff6cb70f7 in gdk_surface_event_marshallerv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#35 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#36 0x00007ffff7d729a8 in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#37 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#38 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#39 0x00007ffff6cba8a7 in gdk_surface_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#40 0x00007ffff6c43c4a in gdk_event_source_dispatch () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#41 0x00007ffff7ed0f74 in g_main_dispatch () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#42 0x00007ffff7ed3ff7 in g_main_context_iterate_unlocked.isra () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#43 0x00007ffff7ed45ec in g_main_context_iteration () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#44 0x00007ffff7ba2d1d in g_application_run () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgio-2.0.so.0
#45 0x000000000044ec2e in main ()
(gdb) 
GeopJr commented 3 weeks ago

Thank you so much! Yes that was very helpful!

I'm positive that #1061 will fix it, but if it's not too troublesome and you want to confirm, try applying this patch: https://patch-diff.githubusercontent.com/raw/GeopJr/Tuba/pull/1061.patch

donovanglover commented 3 weeks ago

Seems to have fixed it partially but I still get SIGSEGVs occasionally when doing things like pressing the back button twice in a row. Here's a backtrace:

Thread 1 ".dev.geopjr.Tub" received signal SIGSEGV, Segmentation fault.
0x000000000048e56e in tuba_dialogs_main_window_on_popped ()
(gdb) backtrace 
#0  0x000000000048e56e in tuba_dialogs_main_window_on_popped ()
#1  0x00007ffff7d60961 in g_cclosure_marshal_VOID__OBJECTv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#2  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#3  0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#4  0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#5  0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#6  0x00007ffff6684ea1 in pop_from_stack () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#7  0x00007ffff6686af9 in adw_navigation_view_pop () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#8  0x00007ffff6686b79 in navigation_pop_cb () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#9  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#10 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#11 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#12 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#13 0x00007ffff68d9839 in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#14 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#15 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#16 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#17 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#18 0x00007ffff69877ae in gtk_gesture_click_end () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#19 0x00007ffff7d606b2 in g_cclosure_marshal_VOID__BOXEDv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#20 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#21 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#22 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#23 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#24 0x00007ffff6984783 in _gtk_gesture_check_recognized () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#25 0x00007ffff6985edb in gtk_gesture_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#26 0x00007ffff6988e16 in gtk_gesture_single_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#27 0x00007ffff6955566 in gtk_event_controller_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#28 0x00007ffff6a9dd88 in gtk_widget_run_controllers () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#29 0x00007ffff6aa558e in _gtk_widget_captured_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#30 0x00007ffff69c6b8e in gtk_propagate_event_internal () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#31 0x00007ffff69c7395 in gtk_main_do_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#32 0x00007ffff6c2e25c in _gdk_marshal_BOOLEAN__POINTERv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#33 0x00007ffff6cb70f7 in gdk_surface_event_marshallerv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#34 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#35 0x00007ffff7d729a8 in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#36 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#37 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#38 0x00007ffff6cba8a7 in gdk_surface_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#39 0x00007ffff6c43c4a in gdk_event_source_dispatch () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#40 0x00007ffff7ed0f74 in g_main_dispatch () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#41 0x00007ffff7ed3ff7 in g_main_context_iterate_unlocked.isra () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#42 0x00007ffff7ed45ec in g_main_context_iteration () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#43 0x00007ffff7ba2d1d in g_application_run () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgio-2.0.so.0
#44 0x000000000044ec2e in main ()
donovanglover commented 3 weeks ago

Also got a SIGSEGV when pressing the "Home" button from the "For You" section under "Explore". Seems to be related but I don't think I can reproduce without opening random stuff until it crashes again.

Thread 1 ".dev.geopjr.Tub" received signal SIGSEGV, Segmentation fault.
0x000000000048e56e in tuba_dialogs_main_window_on_popped ()
(gdb) backtrace
#0  0x000000000048e56e in tuba_dialogs_main_window_on_popped ()
#1  0x00007ffff7d60961 in g_cclosure_marshal_VOID__OBJECTv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#2  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#3  0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#4  0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#5  0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#6  0x00007ffff6684ea1 in pop_from_stack () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#7  0x00007ffff6686af9 in adw_navigation_view_pop () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#8  0x000000000048e5fc in tuba_dialogs_main_window_go_back_to_start ()
#9  0x00000000004cc2ee in __tuba_mastodon_account_place_home_lambda242__tuba_place_open_func ()
#10 0x00000000004ff6f8 in _tuba_views_sidebar_on_item_activated_gtk_list_box_row_activated ()
#11 0x00007ffff7d60961 in g_cclosure_marshal_VOID__OBJECTv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#12 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#13 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#14 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#15 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#16 0x00007ffff69bb3d7 in gtk_list_box_click_gesture_released () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#17 0x00007ffff68d9839 in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#18 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#19 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#20 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#21 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#22 0x00007ffff69877ae in gtk_gesture_click_end () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#23 0x00007ffff7d606b2 in g_cclosure_marshal_VOID__BOXEDv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#24 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#25 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#26 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#27 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#28 0x00007ffff6984783 in _gtk_gesture_check_recognized () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#29 0x00007ffff6985edb in gtk_gesture_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#30 0x00007ffff6988e16 in gtk_gesture_single_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#31 0x00007ffff6955566 in gtk_event_controller_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#32 0x00007ffff6a9dd88 in gtk_widget_run_controllers () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#33 0x00007ffff69c6c26 in gtk_propagate_event_internal () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#34 0x00007ffff69c7395 in gtk_main_do_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#35 0x00007ffff6c2e25c in _gdk_marshal_BOOLEAN__POINTERv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#36 0x00007ffff6cb70f7 in gdk_surface_event_marshallerv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#37 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#38 0x00007ffff7d729a8 in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#39 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#40 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#41 0x00007ffff6cba8a7 in gdk_surface_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#42 0x00007ffff6c43c4a in gdk_event_source_dispatch () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#43 0x00007ffff7ed0f74 in g_main_dispatch () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#44 0x00007ffff7ed3ff7 in g_main_context_iterate_unlocked.isra () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#45 0x00007ffff7ed45ec in g_main_context_iteration () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#46 0x00007ffff7ba2d1d in g_application_run () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgio-2.0.so.0
#47 0x000000000044ec2e in main ()
(gdb) 
GeopJr commented 3 weeks ago

Are there any logs before that? (CRITICALs probably)

This is weird, all it tells me is that it segfaulted when calling on_popped but not why exactly :/

(it's the same in both logs)

Here's another patch on top of the previous one that will log if some objects are null, could you give a try? (and reproduce the segfault)

log.patch.txt

(it will log three boolean values to see if some properties are null)

donovanglover commented 3 weeks ago

Was able to reproduce this time by pressing the back button once (similar to the reproduction steps in the original post). Haven't seen any CRITICALs in logs yet.

(dev.geopjr.Tuba:1021824): Tuba-DEBUG: 15:13:01.232: Status.vala:238: Destroying Status widget
(dev.geopjr.Tuba:1021824): Tuba-DEBUG: 15:13:01.233: Status.vala:4: [OBJ] Destroyed https://example.com/users/<account_that_boosted>/statuses/<boosted_status>/activity
(dev.geopjr.Tuba:1021824): Tuba-DEBUG: 15:13:01.233: Status.vala:4: [OBJ] Destroyed https://example.org/users/<boosted_account>/statuses/<status>

(dev.geopjr.Tuba:1021824): Tuba-WARNING **: 15:13:02.805: MainWindow.vala:186: false

(dev.geopjr.Tuba:1021824): Tuba-WARNING **: 15:13:02.805: MainWindow.vala:187: false

(dev.geopjr.Tuba:1021824): Tuba-WARNING **: 15:13:02.806: MainWindow.vala:188: false

Thread 1 ".dev.geopjr.Tub" received signal SIGSEGV, Segmentation fault.
0x000000000048e681 in tuba_dialogs_main_window_on_popped ()
(gdb) backtrace 
#0  0x000000000048e681 in tuba_dialogs_main_window_on_popped ()
#1  0x00007ffff7d60961 in g_cclosure_marshal_VOID__OBJECTv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#2  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#3  0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#4  0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#5  0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#6  0x00007ffff6684ea1 in pop_from_stack () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#7  0x00007ffff6686af9 in adw_navigation_view_pop () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#8  0x00007ffff6686b79 in navigation_pop_cb () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#9  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#10 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#11 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#12 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#13 0x00007ffff68d9839 in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#14 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#15 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#16 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#17 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#18 0x00007ffff69877ae in gtk_gesture_click_end () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#19 0x00007ffff7d606b2 in g_cclosure_marshal_VOID__BOXEDv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#20 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#21 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#22 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#23 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#24 0x00007ffff6984783 in _gtk_gesture_check_recognized () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#25 0x00007ffff6985edb in gtk_gesture_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#26 0x00007ffff6988e16 in gtk_gesture_single_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#27 0x00007ffff6955566 in gtk_event_controller_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#28 0x00007ffff6a9dd88 in gtk_widget_run_controllers () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#29 0x00007ffff6aa558e in _gtk_widget_captured_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#30 0x00007ffff69c6b8e in gtk_propagate_event_internal () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#31 0x00007ffff69c7395 in gtk_main_do_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#32 0x00007ffff6c2e25c in _gdk_marshal_BOOLEAN__POINTERv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#33 0x00007ffff6cb70f7 in gdk_surface_event_marshallerv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#34 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#35 0x00007ffff7d729a8 in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#36 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#37 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#38 0x00007ffff6cba8a7 in gdk_surface_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#39 0x00007ffff6c43c4a in gdk_event_source_dispatch () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#40 0x00007ffff7ed0f74 in g_main_dispatch () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#41 0x00007ffff7ed3ff7 in g_main_context_iterate_unlocked.isra () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#42 0x00007ffff7ed45ec in g_main_context_iteration () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#43 0x00007ffff7ba2d1d in g_application_run () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgio-2.0.so.0
#44 0x000000000044ec2e in main ()
(gdb) 
GeopJr commented 3 weeks ago

Thanks!

I installed nixos in a vm but still can't reproduce it :/

Could you try one last time? I have two patches,

  1. log_full.patch.txt

Like the previous one, some more logging in an attempt to point it down

  1. Remove all patches and try https://patch-diff.githubusercontent.com/raw/GeopJr/Tuba/pull/1061.patch again (added changes). This will probably fix everything but I'll have to do a thorough memory leak check
donovanglover commented 3 weeks ago

Patch 1:

(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:20.335: Network.vala:65: POST: https://example.com/api/v1/accounts/<boosted_account>/mute
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:20.764: Relationship.vala:90: Performed "mute" on Relationship <boosted_account>
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:21.172: Streams.vala:131: https://example.com/api/v1/streaming?stream=user: delete for TubaViewsHome
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:21.174: Status.vala:238: Destroying Status widget
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:21.174: Status.vala:4: [OBJ] Destroyed https://example.com/users/<account_that_boosted>/statuses/<boosted_status>/activity
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:21.175: Status.vala:4: [OBJ] Destroyed https://example.org/users/<boosted_account>/statuses/<status>
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:21.175: Streams.vala:131: https://example.com/api/v1/streaming?stream=user: delete for TubaViewsHome
(dev.geopjr.Tuba:1041424): Tuba-DEBUG: 20:07:21.175: Streams.vala:131: https://example.com/api/v1/streaming?stream=user: delete for TubaViewsHome

(dev.geopjr.Tuba:1041424): Tuba-WARNING **: 20:07:22.632: MainWindow.vala:186: false

(dev.geopjr.Tuba:1041424): Tuba-WARNING **: 20:07:22.632: MainWindow.vala:187: false

(dev.geopjr.Tuba:1041424): Tuba-WARNING **: 20:07:22.632: MainWindow.vala:188: false

(dev.geopjr.Tuba:1041424): Tuba-WARNING **: 20:07:22.632: MainWindow.vala:190: Passed cbase

(dev.geopjr.Tuba:1041424): Tuba-WARNING **: 20:07:22.632: MainWindow.vala:192: false

Thread 1 ".dev.geopjr.Tub" received signal SIGSEGV, Segmentation fault.
0x00007ffff7d82884 in g_type_check_instance_is_a () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
(gdb) backtrace
#0  0x00007ffff7d82884 in g_type_check_instance_is_a () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#1  0x000000000048e6df in tuba_dialogs_main_window_on_popped ()
#2  0x00007ffff7d60961 in g_cclosure_marshal_VOID__OBJECTv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#3  0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#4  0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#5  0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#6  0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#7  0x00007ffff6684ea1 in pop_from_stack () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#8  0x00007ffff6686af9 in adw_navigation_view_pop () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#9  0x00007ffff6686b79 in navigation_pop_cb () from /nix/store/rxn1km04lpbii7w546qkdvf2x8hiby0i-libadwaita-1.5.1/lib/libadwaita-1.so.0
#10 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#11 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#12 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#13 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#14 0x00007ffff68d9839 in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#15 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#16 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#17 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#18 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#19 0x00007ffff69877ae in gtk_gesture_click_end () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#20 0x00007ffff7d606b2 in g_cclosure_marshal_VOID__BOXEDv () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#21 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#22 0x00007ffff7d736ac in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#23 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#24 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#25 0x00007ffff6984783 in _gtk_gesture_check_recognized () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#26 0x00007ffff6985edb in gtk_gesture_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#27 0x00007ffff6988e16 in gtk_gesture_single_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#28 0x00007ffff6955566 in gtk_event_controller_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#29 0x00007ffff6a9dd88 in gtk_widget_run_controllers () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#30 0x00007ffff6aa558e in _gtk_widget_captured_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#31 0x00007ffff69c6b8e in gtk_propagate_event_internal () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#32 0x00007ffff69c7395 in gtk_main_do_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#33 0x00007ffff6c2e25c in _gdk_marshal_BOOLEAN__POINTERv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#34 0x00007ffff6cb70f7 in gdk_surface_event_marshallerv () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#35 0x00007ffff7d5d861 in _g_closure_invoke_va () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#36 0x00007ffff7d729a8 in signal_emit_valist_unlocked () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#37 0x00007ffff7d792d2 in g_signal_emit_valist () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#38 0x00007ffff7d7937f in g_signal_emit () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgobject-2.0.so.0
#39 0x00007ffff6cba8a7 in gdk_surface_handle_event () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#40 0x00007ffff6c43c4a in gdk_event_source_dispatch () from /nix/store/3nfswm4lgdllaqbb7qf32n0bm5zlwhsh-gtk4-4.14.4/lib/libgtk-4.so.1
#41 0x00007ffff7ed0f74 in g_main_dispatch () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#42 0x00007ffff7ed3ff7 in g_main_context_iterate_unlocked.isra () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#43 0x00007ffff7ed45ec in g_main_context_iteration () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libglib-2.0.so.0
#44 0x00007ffff7ba2d1d in g_application_run () from /nix/store/nm9608b5y801fq2p73nl7k80z8kcbmh2-glib-2.80.2/lib/libgio-2.0.so.0
#45 0x000000000044ec2e in main ()
(gdb) 
donovanglover commented 3 weeks ago

Looks like the second patch fixes things. I haven't had a single SIGSEGV yet. Thank you!

GeopJr commented 3 weeks ago

Finally we found the culprit, thank you! Wouldn't be able to fix it without your help!


I'll probably go with the second option but for the sake of documenting it so we avoid this in the future:

per the above log, content_base.last_widget == null is false, so the weak ref to the last focused widget is not null. At the same time, content_base.last_widget as Gtk.Widget (/ g_type_check_instance_is_a in C) segfaults.

Makes sense why the initial assertion when grab_focus is called, would also segfault here.

Moving forward, getting rid of the weak ref seems to be the appropriate solution in this case.