VocalPodcastProject / vocal

A powerful, beautiful, and simple podcast client for the modern free desktop.
GNU General Public License v3.0
350 stars 49 forks source link

SIGSEGV Address Boundary Error when adding podcasts, and a Pango error when removing podcasts. #304

Open Zachs-Kappler opened 6 years ago

Zachs-Kappler commented 6 years ago

Well, I thought the error with adding and removing podcasts was fixed, but it still crashes. It gets weirder, as the actions are being performed and are reflected in Vocal after reopening it. I'll include the terminal output of both actions, but this is way better than nothing happening at all. I considered omitting the lines before the errors occurred, but maybe they might help.

elementary OS 0.4.1 Loki Vocal 2.2.0 from the AppCenter

Adding a Podcast:

[INFO 16:35:52.517472] Application.vala:154: Vocal version: 2.2.0
[INFO 16:35:52.517526] Application.vala:156: Kernel version: 4.13.0-38-generic
[INFO 16:35:52.521756] Controller.vala:78: Initializing the controller.
[INFO 16:35:52.521814] Controller.vala:82: Initializing the player from GStreamer.
[INFO 16:35:52.525004] Controller.vala:87: Initializing the iTunes store provider.
[INFO 16:35:52.525593] Controller.vala:91: Establishing a connection to your podcast library.
[INFO 16:35:52.527074] Controller.vala:98: Initializing the main window.
[INFO 16:35:52.528995] MainWindow.vala:182: Loading CSS provider.
[INFO 16:35:52.529369] MainWindow.vala:214: Creating video playback widgets.
[INFO 16:35:52.532804] MainWindow.vala:271: Creating notebook.
[INFO 16:35:52.532912] MainWindow.vala:277: Creating podcast view.
[INFO 16:35:52.539253] MainWindow.vala:284: Creating welcome screen.
[INFO 16:35:52.540004] MainWindow.vala:295: Creating new episodes view.
[INFO 16:35:52.542453] MainWindow.vala:309: Creating scrolled containers and album art views.
[INFO 16:35:52.547648] MainWindow.vala:370: Creating directory view.
[INFO 16:35:52.549552] MainWindow.vala:385: Creating toolbar.
[INFO 16:35:52.553965] MainWindow.vala:447: Creating show notes popover.
[INFO 16:35:52.555490] MainWindow.vala:452: Creating downloads popover.
[INFO 16:35:52.556992] MainWindow.vala:460: Creating queue popover.
[INFO 16:35:52.558381] MainWindow.vala:486: Adding notebook to window.
[INFO 16:35:52.632649] MainWindow.vala:505: Window initialization complete.
[INFO 16:35:52.632699] Controller.vala:146: Initializing notifications.
[INFO 16:35:52.632732] Controller.vala:154: Setting up media keys.
[INFO 16:35:52.635711] Controller.vala:182: Setting up keyboard shortcuts.
[INFO 16:35:52.635979] Controller.vala:251: Refilling library.
[INFO 16:35:52.696839] Controller.vala:264: Performing library autoclean.
[INFO 16:35:52.697016] Controller.vala:295: Controller initialization finished. Running post-creation sequence.
[INFO 16:35:52.697109] MainWindow.vala:517: Populating the main podcast view.
[INFO 16:35:52.697145] MainWindow.vala:533: Restoring last played media.
[INFO 16:35:52.697220] MainWindow.vala:594: Creating coverart for each podcast in library.
[INFO 16:35:52.778710] MainWindow.vala:636: Adding coverart to view.
[INFO 16:36:12.698762] Controller.vala:578: Checking for updates.
[INFO 16:36:12.699145] Library.vala:386: updating feed http://feeds.twit.tv/aaa.xml
[INFO 16:36:12.943777] Library.vala:386: updating feed http://www.badvoltage.org/feed/mp3/
[INFO 16:36:13.811148] Library.vala:386: updating feed https://adafruit-podcasts.s3.amazonaws.com/collins_lab/podcast.xml
[INFO 16:36:14.124491] Library.vala:386: updating feed http://feeds.5by5.tv/dlc
[INFO 16:36:14.460134] Library.vala:386: updating feed http://feeds.feedburner.com/pkmncast
[INFO 16:36:14.622683] Library.vala:386: updating feed http://linuxactionnews.com/rss
[INFO 16:36:15.171817] Library.vala:386: updating feed http://podcast.nintendopower.com/feed.xml
[INFO 16:36:15.332172] Library.vala:386: updating feed http://arstechnica.libsyn.com/rss
[INFO 16:36:15.545540] Library.vala:386: updating feed http://feeds.soundcloud.com/users/soundcloud:users:169124111/sounds.rss
[INFO 16:36:16.992950] Library.vala:386: updating feed https://audioboom.com/channels/4902302.rss
[INFO 16:36:17.829058] Library.vala:386: updating feed https://audioboom.com/channels/4903254.rss
[INFO 16:36:17.974605] Library.vala:386: updating feed http://101club.libsyn.com/rss
[INFO 16:36:18.134929] Library.vala:386: updating feed https://www.podetize.com/wtfff3dprinting/feed/
[INFO 16:36:30.474634] Library.vala:386: updating feed http://feeds.soundcloud.com/users/soundcloud:users:160113131/sounds.rss

[WARNING 16:37:17.028679] ImageCache.vala:90: Failed to load image. Service https://is5-ssl.mzstatic.com/image/thumb/Music62/v4/87/35/77/873577a7-a9e0-4159-fc7e-9600f8ed20f1/source/600x600bb.jpg returned HTTP status code 404 Not Found
[INFO 16:37:39.071052] Controller.vala:479: Adding feed http://gamewave.yays.co/rss.xml
[INFO 16:37:39.072097] Library.vala:303: Adding podcast from file: http://gamewave.yays.co/rss.xml
[INFO 16:37:39.597276] Library.vala:312: Async Adding Gamewave Podcast - The Chiptune Podcast
[INFO 16:37:39.597306] Library.vala:154: Podcast Gamewave Podcast - The Chiptune Podcast being added to library.
[INFO 16:37:54.910390] MainWindow.vala:517: Populating the main podcast view.
[INFO 16:37:54.915644] MainWindow.vala:533: Restoring last played media.
[INFO 16:37:54.915692] MainWindow.vala:585: Refilling library.
fish: “com.github.needle-and-thread.vo…” terminated by signal SIGSEGV (Address boundary error)

Removing a Podcast:

[INFO 16:51:29.569395] Application.vala:154: Vocal version: 2.2.0
[INFO 16:51:29.569436] Application.vala:156: Kernel version: 4.13.0-38-generic
[INFO 16:51:29.573266] Controller.vala:78: Initializing the controller.
[INFO 16:51:29.573299] Controller.vala:82: Initializing the player from GStreamer.
[INFO 16:51:29.575412] Controller.vala:87: Initializing the iTunes store provider.
[INFO 16:51:29.575786] Controller.vala:91: Establishing a connection to your podcast library.
[INFO 16:51:29.576807] Controller.vala:98: Initializing the main window.
[INFO 16:51:29.578125] MainWindow.vala:182: Loading CSS provider.
[INFO 16:51:29.578502] MainWindow.vala:214: Creating video playback widgets.
[INFO 16:51:29.582240] MainWindow.vala:271: Creating notebook.
[INFO 16:51:29.582354] MainWindow.vala:277: Creating podcast view.
[INFO 16:51:29.590780] MainWindow.vala:284: Creating welcome screen.
[INFO 16:51:29.591719] MainWindow.vala:295: Creating new episodes view.
[INFO 16:51:29.593388] MainWindow.vala:309: Creating scrolled containers and album art views.
[INFO 16:51:29.596575] MainWindow.vala:370: Creating directory view.
[INFO 16:51:29.598430] MainWindow.vala:385: Creating toolbar.
[INFO 16:51:29.603024] MainWindow.vala:447: Creating show notes popover.
[INFO 16:51:29.604734] MainWindow.vala:452: Creating downloads popover.
[INFO 16:51:29.606347] MainWindow.vala:460: Creating queue popover.
[INFO 16:51:29.607669] MainWindow.vala:486: Adding notebook to window.
[INFO 16:51:29.682921] MainWindow.vala:505: Window initialization complete.
[INFO 16:51:29.682973] Controller.vala:146: Initializing notifications.
[INFO 16:51:29.682999] Controller.vala:154: Setting up media keys.
[INFO 16:51:29.685393] Controller.vala:182: Setting up keyboard shortcuts.
[INFO 16:51:29.685585] Controller.vala:251: Refilling library.
[INFO 16:51:29.754557] Controller.vala:264: Performing library autoclean.
[INFO 16:51:29.754733] Controller.vala:295: Controller initialization finished. Running post-creation sequence.
[INFO 16:51:29.754773] MainWindow.vala:517: Populating the main podcast view.
[INFO 16:51:29.754815] MainWindow.vala:533: Restoring last played media.
[INFO 16:51:29.754848] MainWindow.vala:594: Creating coverart for each podcast in library.
[INFO 16:51:29.832892] MainWindow.vala:636: Adding coverart to view.
[INFO 16:51:48.863704] MainWindow.vala:517: Populating the main podcast view.
[INFO 16:51:48.874202] MainWindow.vala:533: Restoring last played media.
[INFO 16:51:48.874278] MainWindow.vala:585: Refilling library.
[INFO 16:51:48.944526] MainWindow.vala:594: Creating coverart for each podcast in library.
[INFO 16:51:49.029491] MainWindow.vala:636: Adding coverart to view.

**
Pango:ERROR:/build/pango1.0-EzEh0I/pango1.0-1.38.1/./pango/pango-layout.c:3925:pango_layout_check_lines: assertion failed: (!layout->log_attrs)
fish: “com.github.needle-and-thread.vo…” terminated by signal SIGABRT (Abort)
xpaulnim commented 6 years ago

I think I might have seen something similar when testing one of my PRs. https://github.com/needle-and-thread/vocal/pull/276#issuecomment-379514993 . It seems to happen when vocal is creating episodeDetailBoxes in the new episode view.

./com.github.needle-and-thread.vocal(vocal_episode_detail_box_construct+0xbe5)[0x4402d9]
./com.github.needle-and-thread.vocal(vocal_episode_detail_box_new+0x43)[0x4416b4]
./com.github.needle-and-thread.vocal(vocal_new_episodes_view_populate_episodes_list+0x49b)[0x4519ad]
./com.github.needle-and-thread.vocal(vocal_main_window_populate_views+0x1a30)[0x421efb]

Certainly for the first trace

psetq commented 6 years ago

Can these error be easily reproduced with the current version? Nevermind, I've been able to reproduce a couple of different errors when adding/removing podcasts. I'll create new issues once I'm able to narrow down the causes.

I'm getting some frequent errors/crashes when adding and/or removing podcasts, but they don't really seem to match the logs list above. The errors I'm getting appear to be *gtk_css* related. Not sure if I should open new issue or post backtrace here.

One example while removing a podcast:

Gtk:ERROR:/build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcssinheritvalue.c:33:gtk_css_value_inherit_free: code should not be reached
(gdb) bt 10
#0  0x00007ffff3a6e428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff3a7002a in __GI_abort () at abort.c:89
#2  0x00007ffff431cd65 in g_assertion_message () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff431cdfa in g_assertion_message_expr () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff544e636 in gtk_css_value_inherit_free (value=<optimized out>) at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcssinheritvalue.c:33
#5  0x00007ffff544fb1c in _gtk_css_lookup_resolve (lookup=lookup@entry=0x25aa310, provider=provider@entry=0x7a40d0, style=style@entry=0x2aa2d30, 
    parent_style=parent_style@entry=0x9829c0) at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcsslookup.c:125
#6  0x00007ffff5462309 in gtk_css_static_style_new_compute (provider=0x7a40d0, matcher=matcher@entry=0x7fffffffc890, parent=parent@entry=0x9829c0)
    at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcssstaticstyle.c:191
#7  0x00007ffff5451ebd in gtk_css_node_create_style (cssnode=0x7fffbc331240) at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcssnode.c:330
#8  gtk_css_node_real_update_style (cssnode=0x7fffbc331240, change=10745806976, timestamp=6925972785, style=0x2bd5470)
    at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcssnode.c:384
#9  0x00007ffff5450f62 in gtk_css_node_ensure_style (cssnode=cssnode@entry=0x7fffbc331240, current_time=6925972785)
    at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkcssnode.c:923
(More stack frames follow...)
(gdb) bt -10
#45 0x00007ffff45e908f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#46 0x00007ffff5635c3c in gtk_widget_event_internal (widget=0xd8a460, event=0x25fc020) at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkwidget.c:7692
#47 0x00007ffff54f7176 in gtk_main_do_event (event=0x25fc020) at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gtk/gtkmain.c:1795
#48 0x00007ffff5e96d92 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
    at /build/gtk+3.0-2Ut_nl/gtk+3.0-3.18.9/./gdk/x11/gdkeventsource.c:369
#49 0x00007ffff42f7197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007ffff42f73f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#51 0x00007ffff42f749c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007ffff74c2d6d in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#53 0x0000000000415d2b in vocal_vocal_app_main (args=0x7fffffffdd58, args_length1=1) at /Source/master-vocal/src/Vocal.vala:138
#54 0x0000000000415dc7 in main (argc=1, argv=0x7fffffffdd58) at /Source/master-vocal/src/Vocal.vala:92

(gdb) 
xpaulnim commented 6 years ago

I think this issue and #311 are being cause by populate_views_async. Replacing it with populate_views seems to resolve the issue (It hasn't happened after subscribing and unsubscribing from a number of podcasts). The problem then becomes that vocal is not async.

I'm not sure why using an async would cause this.

tsujigiri commented 6 years ago

I also see it crashing right after the Adding coverart to view. message with additional FATAL messages before finally dying. This happens repeatedly, even without interaction with the app and during listening to a podcast.

[INFO 09:35:14.198855] MainWindow.vala:636: Adding coverart to view.
[FATAL 09:35:14.203204] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.203238] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.203793] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.204477] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.204494] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.205025] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.205279] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.205295] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.205635] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.205654] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.205952] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.205967] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.206350] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.206368] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.206397] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.206673] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.206691] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.207029] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.207046] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.207339] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.207357] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.207744] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.207763] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.207781] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.208324] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.208343] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.208361] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.208972] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.208993] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.209012] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.209406] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.209428] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.209922] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.209940] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.209955] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.209969] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.210241] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.210259] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.210653] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.210671] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.210926] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.210944] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.211307] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.211324] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.211339] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.211589] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.211608] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.211988] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212007] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212021] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212035] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212570] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212588] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212603] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212617] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.212866] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.212883] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.213278] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.213296] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.213309] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.213323] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214026] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214045] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214059] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214073] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214085] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214713] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.214733] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.215351] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.215378] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.215396] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.215813] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.215837] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.216336] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.216360] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.216388] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.216772] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.216796] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.217274] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.217298] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.217317] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.217721] [Gtk] gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.217745] [Gtk] gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed
[FATAL 09:35:14.218240] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.218263] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.218282] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.218301] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.219142] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.219166] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.219184] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.220057] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.220084] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.220103] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.220121] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221024] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221051] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221071] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221089] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221846] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221872] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221890] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221912] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.221933] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.222647] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.222670] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.222687] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.222705] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.222721] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.222740] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.223722] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.223747] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.223766] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
[FATAL 09:35:14.223785] [GLib] g_date_time_difference: assertion 'begin != NULL' failed
fish: “com.github.needle-and-thread.vo…” terminated by signal SIGSEGV (Address boundary error)
psetq commented 6 years ago

Unfortunately, I think many/most of those error messages are misleading. I've submitted a pull request to address the g_date_time_difference error, but I don't think that it's causing the crash.

I think, like xpaulnim pointed out is that the problem originates in the populate_views_async method. What I think is happening is that an already displayed UI element(s) are being updated from the background thread, which should not be done.

I was seeing crashes pretty regularly during background podcast updates and made a change (pull request #325 ) which defers updating the new-podcast UI to the main thread which significantly reduced the number of crashes I am now seeing (though I suspect this issue still exists in other areas/updates).

It's also be interesting to know which podcast caused the date errors, since the date parsing routine could probably be improved a bit ...