GeopJr / Tuba

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

[Bug]: crash on opening #1136

Open g1bwt opened 2 hours ago

g1bwt commented 2 hours ago

Describe the bug

Starting up to approximately 2 days ago, the flatpak stable version of Tuba 0.8.4 was running fine. Then it started crashing everytime it was started. The server (mastodonapp.uk, running version Mastodon 4.2.10) was having problems at the time and I put it down to that. The Sysadmin now says that all problems have been resolved but the crashing still occurs on Tuba. It also crashes after setting up on a new server (fosstodon.org).

This is on Kubuntu 24.04, under Wayland.

Steps To Reproduce

Start the flatpak dev.geopjr.Tuba app from either the desktop icon or from a terminal (konsole) command line. It then crashes immediately.

Logs and/or Screenshots

tuba-crash.txt tuba-crash-revoked.txt tuba-crash-revoked-new-server.txt

Instance Backend

Mastodon

Operating System

4.2.10 and 4.2.12

Package

Flatpak

Troubleshooting information

I have so far removed and reinstalled the flatpak of Tuba numerous times to date. I have also removed the dev.geopjr .Tuba from .var/app/ with still no success. I have now run with G_MESSAGES_DEBUG=Tuba flatpak run dev.geopjr.Tuba and have generated 3 txt files. tuba-crash.txt is just running Tuba without doing anything other than run it with it crashing immediately. tuba-crash-revoked.txt is after I have revoked access to Tuba on the mastodonapp.uk website. This causes an error screen saying about revoked access. I then can get to my account on the Tuba app and can delete and forget my account. I can then setup my account again with the server and can successfully authorise it through the mastodonapp.uk website. Immediately after the screen refreshes and crashes. tuba-crash-revoked-new-server.txt is when I am revoking the account on mastodonapp.uk and forgetting that account and then setting up on my backup server (fosstodon.org, Mastodon v 4.2.12). Again, immediately after getting to the posts screen after authorising etc. it crashes. I am successfully using mastodonapp.uk with Tokodon app and other Apple IOS apps, plus the website.

Additional Context

No response

GeopJr commented 2 hours ago

Thanks for the report!

I just made an account on mastodonapp.uk and don't crash here, so I don't think it's an instance related issue.

Would you mind running gdb and reproducing the crash so I get a backtrace?

g1bwt commented 1 hour ago
This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) 
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff1c006c0 (LWP 16)]
[New Thread 0x7fffe92006c0 (LWP 17)]
[New Thread 0x7ffff12006c0 (LWP 18)]
[New Thread 0x7fffebe006c0 (LWP 19)]
[New Thread 0x7fffeb4006c0 (LWP 20)]
[New Thread 0x7fffeaa006c0 (LWP 21)]
[New Thread 0x7fffea0006c0 (LWP 22)]
[New Thread 0x7fffe3e006c0 (LWP 23)]
[New Thread 0x7fffe34006c0 (LWP 24)]
[New Thread 0x7fffe2a006c0 (LWP 25)]
[New Thread 0x7fffe20006c0 (LWP 26)]
[Thread 0x7fffe2a006c0 (LWP 25) exited]
[Thread 0x7fffeaa006c0 (LWP 21) exited]
[Thread 0x7fffea0006c0 (LWP 22) exited]
[Thread 0x7fffe34006c0 (LWP 24) exited]
[Thread 0x7fffeb4006c0 (LWP 20) exited]
[Thread 0x7fffe20006c0 (LWP 26) exited]
[New Thread 0x7fffe20006c0 (LWP 27)]
[New Thread 0x7fffeb4006c0 (LWP 28)]
[New Thread 0x7fffe34006c0 (LWP 29)]
[New Thread 0x7fffea0006c0 (LWP 30)]
[New Thread 0x7fffe2a006c0 (LWP 31)]
[New Thread 0x7fffe16006c0 (LWP 32)]
[New Thread 0x7fffe0c006c0 (LWP 33)]
[New Thread 0x7fffd56006c0 (LWP 34)]
[New Thread 0x7fffd4c006c0 (LWP 35)]
[New Thread 0x7fffcbe006c0 (LWP 36)]
[New Thread 0x7fffcb4006c0 (LWP 37)]
[Thread 0x7fffd56006c0 (LWP 34) exited]
[Thread 0x7fffd4c006c0 (LWP 35) exited]
[Thread 0x7fffe0c006c0 (LWP 33) exited]
[Thread 0x7fffe2a006c0 (LWP 31) exited]
[Thread 0x7fffea0006c0 (LWP 30) exited]
[Thread 0x7fffe34006c0 (LWP 29) exited]
[Thread 0x7fffeb4006c0 (LWP 28) exited]
[Thread 0x7fffcb4006c0 (LWP 37) exited]
[Thread 0x7fffcbe006c0 (LWP 36) exited]
[Thread 0x7fffe3e006c0 (LWP 23) exited]
[New Thread 0x7fffe3e006c0 (LWP 38)]
[New Thread 0x7fffcbe006c0 (LWP 39)]
[New Thread 0x7fffcb4006c0 (LWP 40)]
[New Thread 0x7fffeb4006c0 (LWP 41)]
[New Thread 0x7fffea0006c0 (LWP 42)]

Thread 1 "dev.geopjr.Tuba" received signal SIGSEGV, Segmentation fault.
0x00007ffff74c1e84 in pango_coverage_get () from /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
(gdb) backtrace
#0  0x00007ffff74c1e84 in pango_coverage_get () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#1  0x00007ffff74b783f in pango_font_default_has_char ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#2  0x00007ffff74b9aea in get_font_foreach () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#3  0x00007ffff5baf869 in pango_fc_fontset_foreach ()
    at /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
#4  0x00007ffff74ba6f3 in get_font () at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#5  0x00007ffff74bb0bd in pango_itemize_with_font ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#6  0x00007ffff74cbc05 in pango_layout_check_lines.part ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#7  0x00007ffff74ce6fe in pango_layout_get_extents_internal ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#8  0x00007ffff5f6a139 in _pango_cairo_font_get_metrics ()
    at /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
#9  0x00007ffff74c7d40 in pango_layout_run_get_extents_and_height ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#10 0x00007ffff74c7fdb in pango_layout_line_get_extents_and_height.part ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#11 0x00007ffff74c8ee2 in get_line_extents_layout_coords ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--c
#12 0x00007ffff74ce604 in pango_layout_get_extents_internal ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#13 0x00007ffff74ce97f in pango_layout_get_size ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#14 0x00007ffff74cd16a in pango_layout_check_lines.part ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#15 0x00007ffff74ce6fe in pango_layout_get_extents_internal ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#16 0x00007ffff74ce9f6 in pango_layout_get_pixel_size ()
    at /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
#17 0x00007ffff6661bfa in update_font_size () at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#18 0x00007ffff6662237 in adw_avatar_set_show_initials ()
    at /usr/lib/x86_64-linux-gnu/libadwaita-1.so.0
#19 0x000055555568ba11 in tuba_widgets_avatar_on_invalidated
    (account=0x5555583a8dc0, self=0x5555585e0240) at ../src/Widgets/Avatar.vala:86
#20 tuba_widgets_avatar_on_invalidated (self=0x5555585e0240, account=0x5555583a8dc0)
    at dev.geopjr.Tuba.p/src/Widgets/Avatar.c:221
#21 0x000055555568ba9b in tuba_widgets_avatar_set_account
    (self=0x5555585e0240, value=0x5555583a8dc0) at ../src/Widgets/Avatar.vala:7
#22 0x00005555556a7fe2 in tuba_widgets_status_real_bind (self=0x5555585da900)
    at ../src/Widgets/Status.vala:931
#23 0x00005555556a5d3e in tuba_widgets_status_bind (self=0x5555585da900)
    at ../src/Widgets/Status.vala:850
#24 tuba_widgets_status_set_status (self=0x5555585da900, value=<optimized out>)
    at ../src/Widgets/Status.vala:17
#25 0x00007ffff7d4f72a in object_set_property ()
    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007ffff7d4fcd0 in g_object_new_with_custom_constructor ()
    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#27 0x00007ffff7d51c1a in g_object_new_valist ()
    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x00007ffff7d5244f in g_object_new () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#29 0x000055555568de11 in tuba_widgets_conversation_construct (object_type=Python Exception <class 'gdb.error'>: No type named TypeNode.

   , entity=entity@entry=0x5555583a78e0) at ../src/Widgets/Conversation.vala:6
#30 0x000055555568e545 in tuba_widgets_conversation_new (entity=entity@entry=0x5555583a78e0)
    at ../src/Widgets/Conversation.vala:5
#31 0x00005555555bae2a in tuba_api_conversation_real_to_widget
    (base=0x5555583a78e0, error=<optimized out>) at ../src/API/Conversation.vala:38
#32 0x0000555555655a60 in tuba_views_content_base_real_on_create_model_widget
    (self=<optimized out>, obj=<optimized out>) at ../src/Views/ContentBase.vala:124
#33 0x00007ffff69c89a4 in gtk_list_box_bound_model_changed ()
    at /usr/lib/x86_64-linux-gnu/libgtk-4.so.1
#34 0x00007ffff7d486fa in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#35 0x00007ffff7d5e3bc in signal_emit_unlocked_R.isra.0 ()
    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#36 0x00007ffff7d5fe41 in signal_emit_valist_unlocked ()
    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#37 0x00007ffff7d65e11 in g_signal_emit_valist ()
    at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#38 0x00007ffff7d65ed3 in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff7b7509d in g_list_store_splice () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#40 0x00005555556799dc in __lambda123_
    (error=<optimized out>, headers=0x555555f3dec0, in_stream=<optimized out>, self=0x555555fc0840) at ../src/Views/Timeline.vala:216
#41 ___lambda123__tuba_network_success_callback
    (in_stream=<optimized out>, response_headers=0x555555f3dec0, self=0x555555fc0840, error=<optimized out>) at ../src/Views/Timeline.vala:204
#42 0x000055555563de71 in __lambda11_
    (obj=<optimized out>, res=<optimized out>, _data53_=0x55555810b210)
    at ../src/Services/Network/Network.vala:75
#43 ___lambda11__gasync_ready_callback
    (source_object=<optimized out>, res=<optimized out>, self=0x55555810b210)
    at ../src/Services/Network/Network.vala:67
#44 0x00007ffff7b5d01b in g_task_return_now () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#45 0x00007ffff7b5e03b in g_task_return () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#46 0x00007ffff7cfa082 in async_send_request_return_result ()
    at /usr/lib/x86_64-linux-gnu/libsoup-3.0.so.0
#47 0x00007ffff7cff10d in run_until_read_done () at /usr/lib/x86_64-linux-gnu/libsoup-3.0.so.0
#48 0x00007ffff7b5d01b in g_task_return_now () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#49 0x00007ffff7b5e03b in g_task_return () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#50 0x00007ffff7ccebe9 in soup_http2_message_data_check_status ()
    at /usr/lib/x86_64-linux-gnu/libsoup-3.0.so.0
#51 0x00007ffff7ebebf0 in g_list_foreach () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff7cce0b2 in io_read_ready () at /usr/lib/x86_64-linux-gnu/libsoup-3.0.so.0
#53 0x00007ffff7ec1697 in g_main_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007ffff7ec37b7 in g_main_context_iterate_unlocked.isra ()
    at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007ffff7ec3e73 in g_main_context_iteration ()
    at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#56 0x00007ffff7b8f14d in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#57 0x00005555555ad4e7 in tuba_application_main
    (args_length1=<optimized out>, args=<optimized out>) at ../src/Application.vala:222
#58 main (argc=<optimized out>, argv=<optimized out>) at ../src/Application.vala:163
GeopJr commented 1 hour ago

Thanks, that's very helpful!

From the looks of it it's a pango issue (it has to do with text rendering). I can forward this issue to them but it'd help if we could narrow it down a bit:

  1. Just in case you are not using the default renderer, could you send me the output of echo $GSK_RENDERER?
  2. The issue has to do with someone's display name in the 'Conversation' tab. Would you mind sending me a list of the names? You can do it automatically by going to https://mastodonapp.uk/conversations, opening console (CtrlShiftK), running new Set([...document.querySelectorAll(".display-name__html")].map(x => x.innerText)) and then right clicking the result and selecting 'Copy Message'. If you don't want to send the names here for privacy reasons, feel free to e-mail them to me at evan@geopjr.dev