SUMMARY I recently removed a bunch of podcasts in AntennaPod, which is synced to Kasts via Nextcloud gPodder, and also removed some podcasts locally in kasts. But when I did a full sync in Kasts, it crashed, and now it crashes immediately on launch. Backtrace: (gdb) r Starting program: /app/bin/kasts-bin [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1". warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libicudata.so.71.1.debug" does not match "/usr/lib/x86_64-linux-gnu/libicudata.so.71" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libicudata.so.71.1.debug" does not match "/usr/lib/x86_64-linux-gnu/libicudata.so.71" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.7200.4.debug" does not match "/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.7200.4.debug" does not match "/usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libX11-xcb.so.1" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libX11-xcb.so.1.0.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libX11-xcb.so.1" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0.0.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0.0.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0" (CRC mismatch). [New Thread 0x7ffff123f640 (LWP 24)] [New Thread 0x7ffff0a3e640 (LWP 25)] warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libwayland-client.so.0.21.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libwayland-client.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libwayland-client.so.0.21.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libwayland-client.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0.21.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0.21.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libwayland-cursor.so.0" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libdl.so.2.debug" does not match "/usr/lib/x86_64-linux-gnu/libdl.so.2" (CRC mismatch). warning: the debug information found in "/usr/lib/debug//usr/lib/x86_64-linux-gnu/libpthread.so.0.debug" does not match "/usr/lib/x86_64-linux-gnu/libpthread.so.0" (CRC mismatch). [New Thread 0x7fffe3c78640 (LWP 26)] Database version 6 [New Thread 0x7fffe28bd640 (LWP 27)] [New Thread 0x7fffe1f67640 (LWP 28)] [New Thread 0x7fffe1754640 (LWP 29)] [New Thread 0x7fffe1552640 (LWP 31)] [New Thread 0x7fffe1653640 (LWP 30)] [New Thread 0x7fffe134b640 (LWP 33)] [New Thread 0x7fffe144c640 (LWP 32)] [Thread 0x7fffe1653640 (LWP 30) exited] [New Thread 0x7fffe124a640 (LWP 35)] [New Thread 0x7fffe1653640 (LWP 34)] [Thread 0x7fffe124a640 (LWP 35) exited] [Thread 0x7fffe1653640 (LWP 34) exited] [New Thread 0x7fffe124a640 (LWP 36)] [Thread 0x7fffe124a640 (LWP 36) exited] [Thread 0x7fffe134b640 (LWP 33) exited] [Thread 0x7fffe1754640 (LWP 29) exited] [Thread 0x7fffe144c640 (LWP 32) exited] [New Thread 0x7fffe144c640 (LWP 37)] [New Thread 0x7fffe134b640 (LWP 38)] [New Thread 0x7fffe1754640 (LWP 39)] [Thread 0x7fffe134b640 (LWP 38) exited] [New Thread 0x7fffe124a640 (LWP 40)] [Thread 0x7fffe124a640 (LWP 40) exited] [Thread 0x7fffe1552640 (LWP 31) exited] [Thread 0x7fffe144c640 (LWP 37) exited] [Thread 0x7fffe1754640 (LWP 39) exited] qrc:/main.qml:416:5: QML ErrorListOverlay: Binding loop detected for property "implicitHeight" qrc:/main.qml:416:5: QML ErrorListOverlay: Binding loop detected for property "implicitHeight" [New Thread 0x7fffb5707640 (LWP 41)] [New Thread 0x7fffb4f06640 (LWP 42)] [New Thread 0x7fffb4705640 (LWP 43)] qrc:/DesktopPlayerControls.qml:406:5: QML Dialog: Binding loop detected for property "implicitHeight" qrc:/DesktopPlayerControls.qml:406:5: QML Dialog: Binding loop detected for property "implicitHeight" [New Thread 0x7fffb3c3d640 (LWP 44)] [New Thread 0x7fffb341b640 (LWP 45)] [New Thread 0x7fffb2c1a640 (LWP 46)] file:///usr/lib/qml/org/kde/kirigami.2/Dialog.qml:372:37: QML Binding: Binding loop detected for property "value" file:///usr/lib/qml/org/kde/kirigami.2/ContextDrawer.qml:135:9: QML ListView: Binding loop detected for property "topMargin" [New Thread 0x7fffb2419640 (LWP 47)] [New Thread 0x7fffb0a94640 (LWP 48)] file:///usr/lib/qml/QtQuick/Controls.2/org.kde.desktop/Menu.qml:33:15: QML MenuItem: Binding loop detected for property "implicitWidth" file:///usr/lib/qml/QtQuick/Controls.2/org.kde.desktop/Menu.qml:35:18: QML ListView: Binding loop detected for property "implicitWidth" qrc:/DesktopPlayerControls.qml:427:5: QML Dialog: Binding loop detected for property "implicitHeight" [New Thread 0x7fffabfff640 (LWP 49)] [New Thread 0x7fffab7fe640 (LWP 50)] [New Thread 0x7fffaaffd640 (LWP 51)] [New Thread 0x7fffaa7fc640 (LWP 52)] [New Thread 0x7fffa9ffb640 (LWP 53)] [New Thread 0x7fffa97fa640 (LWP 54)] [New Thread 0x7fffa8ff9640 (LWP 55)] [New Thread 0x7fff8ffff640 (LWP 56)] [New Thread 0x7fff8f7fe640 (LWP 57)] [New Thread 0x7fff8effd640 (LWP 58)] [New Thread 0x7fff8e7fc640 (LWP 59)] [New Thread 0x7fff8dffb640 (LWP 60)] [New Thread 0x7fff8d7fa640 (LWP 61)] [New Thread 0x7fff8cff9640 (LWP 62)] [New Thread 0x7fff6bfff640 (LWP 63)] [New Thread 0x7fff6b7fe640 (LWP 64)] [New Thread 0x7fff6affd640 (LWP 65)] Failed to load feed "https://feeds.feedburner.com/TedtalksHD" Thread 1 "kasts-bin" received signal SIGSEGV, Segmentation fault. Feed::url (this=this@entry=0x0) at /run/build/kasts/src/feed.cpp:145 145 return m_url; (gdb) bt #0 Feed::url() const (this=this@entry=0x0) at /run/build/kasts/src/feed.cpp:145 #1 0x00005555555b7a6a in DataManager::removeFeeds(QList<Feed*> const&) (this=0x555555675320 <DataManager::instance()::_instance>, feeds=<optimized out>) at /run/build/kasts/src/datamanager.cpp:225 #2 0x00005555555b9ae1 in DataManager::removeFeeds(QStringList const&) (this=this@entry=0x555555675320 <DataManager::instance()::_instance>, feedurls=...) at /run/build/kasts/src/datamanager.cpp:208 #3 0x00005555555ee3af in Sync::applySubscriptionChangesLocally(QStringList const&, QStringList const&) (this=this@entry=0x555555675180 <Sync::instance()::_instance>, addList=..., removeList=...) at /run/build/kasts/src/datamanager.h:27 #4 0x00005555555fc0b6 in operator()() const (__closure=0x555559a2b9c0) at /run/build/kasts/src/sync/sync.h:46 #5 0x00007ffff63e4a3d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffcd60, r=0x555559a5eaa0, this=0x555559a2b9b0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #6 doActivate<false>(QObject*, int, void**) (sender=0x555559331670, signal_index=3, argv=0x7fffffffcd60) at kernel/qobject.cpp:3923 #7 0x00007ffff63ddddf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x555559331670, m=m@entry=0x555555672880 <GenericRequest::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3983 #8 0x0000555555586884 in GenericRequest::finished() (this=this@entry=0x555559331670) at /run/build/kasts/src/kasts_autogen/WJA3EWU2BC/moc_genericrequest.cpp:142 #9 0x0000555555608aea in SubscriptionRequest::processResults() (this=0x555559331670) at /run/build/kasts/src/sync/gpodder/subscriptionrequest.cpp:62 #10 0x00007ffff63e4a3d in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffcee0, r=0x555559331670, this=0x555559a0ae60) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #11 doActivate<false>(QObject*, int, void**) (sender=0x555559a35e30, signal_index=10, argv=0x7fffffffcee0) at kernel/qobject.cpp:3923 #12 0x00007ffff63ddddf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x555559a35e30, m=m@entry=0x7ffff77e7920 <QNetworkReply::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at kernel/qobject.cpp:3983 #13 0x00007ffff7788303 in QNetworkReply::finished() (this=this@entry=0x555559a35e30) at .moc/moc_qnetworkreply.cpp:404 #14 0x00007ffff76ff9d8 in QNetworkReplyHttpImplPrivate::finished() (this=0x555559fd46d0) at access/qnetworkreplyhttpimpl.cpp:2280 #15 0x00007ffff63d92d0 in QObject::event(QEvent*) (this=0x555559a35e30, e=0x7fff5401c080) at kernel/qobject.cpp:1347 #16 0x00007ffff6f0901e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x555559a35e30, e=0x7fff5401c080) at kernel/qapplication.cpp:3640 #17 0x00007ffff63ad178 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555559a35e30, event=0x7fff5401c080) at kernel/qcoreapplication.cpp:1064 #18 0x00007ffff63b0111 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x555555694e10) at kernel/qcoreapplication.cpp:1821 #19 0x00007ffff6405df3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0x55555571c800) at kernel/qeventdispatcher_glib.cpp:277 #20 0x00007ffff59b9d71 in g_main_dispatch (context=0x7fffec005010) at ../glib/gmain.c:3419 #21 g_main_context_dispatch (context=0x7fffec005010) at ../glib/gmain.c:4137 #22 0x00007ffff5a10028 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fffec005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4213 #23 0x00007ffff59b74a3 in g_main_context_iteration (context=0x7fffec005010, may_block=1) at ../glib/gmain.c:4278 #24 0x00007ffff64054d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5555557128f0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #25 0x00007ffff63abbeb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffd370, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #26 0x00007ffff63b3d56 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #27 0x00007ffff67dc4cc in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1863 #28 0x00007ffff6f08f95 in QApplication::exec() () at kernel/qapplication.cpp:2832 #29 0x000055555558203f in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /run/build/kasts/src/main.cpp:181 SOFTWARE/OS VERSIONS Operating System: openSUSE Leap 15.5 KDE Plasma Version: 5.27.4 KDE Frameworks Version: 5.103.0 Qt Version: 5.15.8 Kernel Version: 5.14.21-150500.53-default (64-bit) Graphics Platform: X11 Processors: 16 × AMD Ryzen 7 1700X Eight-Core Processor Memory: 62.7 Gibyte of RAM Graphics Processor: NVIDIA GeForce GT 1030/PCIe/SSE2
Thanks for reporting. I see that the code is checking too late for the (non-)existence of a feed locally. So it's trying to access a podcast subscription in the database that you're not subscribed to on this Kasts installation, which fails and then crashes the application. This needs fixing. To get your installation back up and running: first make a copy of your database to make sure that you can go back if things break badly (~/.local/share/KDE/kasts/database.db3) The first thing you could try is simply logging out of nextcloud and then logging back in. If it's the podcast removal message that's causing the crash then that should already solve it. If that doesn't help, you can try (1) logging out, (2) remove the database (but keep the copy), (3) logging back in and do a full sync. That should get you back to the original state (except for the queue list and the queue order).
(In reply to bart from comment #1) > To get your installation back up and running: first make a copy of your > database to make sure that you can go back if things break badly > (~/.local/share/KDE/kasts/database.db3) Oh, I see you are using the flatpak: in that case the path is ~/.var/app/org.kde.kasts/data/KDE/kasts/database.db3
Git commit 67e3f5e990fb5b69e77bbe72143a34b7e47a2ed6 by Bart De Vries. Committed on 18/06/2023 at 14:39. Pushed by bdevries into branch 'release/23.04'. Fix segfault when trying to remove a non-subscribed podcast M +80 -71 src/datamanager.cpp https://invent.kde.org/multimedia/kasts/-/commit/67e3f5e990fb5b69e77bbe72143a34b7e47a2ed6
Git commit b529bfc3ca2f3c64eada10a92bbef6dc18700737 by Bart De Vries. Committed on 18/06/2023 at 13:12. Pushed by bdevries into branch 'master'. Fix segfault when trying to remove a non-subscribed podcast M +80 -71 src/datamanager.cpp https://invent.kde.org/multimedia/kasts/-/commit/b529bfc3ca2f3c64eada10a92bbef6dc18700737
I couldn't log out from Nextcloud from within its UI, since it crashed immediately on launch. But after removing the offending podcasts from Nextcloud, it was able to sync successfully.
Oh, right, you mentioned that it wouldn't start up... Glad you figured out a fix for your local borked configuration. Anyway, the underlying issue will be fixed in 23.04.3. This syncing business is pretty tricky. After looking at the code, I still don't see how you could have got into that particular situation. :-) I tried very hard to reproduce it, but couldn't. Apart from the nullptr dereference which should never have happened (and is now fixed), the sync code has several layers of safeguards to filter out invalid actions, like removing a feed that you don't have locally. I guess I need to also have another very close look at those safeguards.