Application: parley (18.12.3) Qt Version: 5.9.7 Frameworks Version: 5.55.0 Operating System: Linux 4.12.14-lp151.28.44-default x86_64 Distribution: "openSUSE Leap 15.1" -- Information about the crash: - What I was doing when the application crashed: After some excercises, every time when i close Parley intentionally, the application crashes The crash can be reproduced every time. -- Backtrace: Application: Parley (parley), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". [Current thread is 1 (Thread 0x7ff739a4e340 (LWP 5599))] Thread 5 (Thread 0x7ff6ff2fd700 (LWP 5604)): #0 0x00007ff727ee1bab in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007ff734390f78 in QWaitConditionPrivate::wait_relative (time=30000, this=0x55bfaaa83db0) at thread/qwaitcondition_unix.cpp:133 #2 QWaitConditionPrivate::wait (time=30000, this=0x55bfaaa83db0) at thread/qwaitcondition_unix.cpp:141 #3 QWaitCondition::wait (this=this@entry=0x55bfaaa83840, mutex=mutex@entry=0x55bfaaa83bd0, time=30000) at thread/qwaitcondition_unix.cpp:215 #4 0x00007ff73438d04d in QThreadPoolThread::run (this=0x55bfaaa83830) at thread/qthreadpool.cpp:144 #5 0x00007ff73438fc8d in QThreadPrivate::start (arg=0x55bfaaa83830) at thread/qthread_unix.cpp:368 #6 0x00007ff727edb4f9 in start_thread () from /lib64/libpthread.so.0 #7 0x00007ff733c8ef2f in clone () from /lib64/libc.so.6 Thread 4 (Thread 0x7ff704b56700 (LWP 5603)): #0 0x00007ff733c801d8 in read () from /lib64/libc.so.6 #1 0x00007ff72600dc80 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007ff725fc8cb8 in g_main_context_check () from /usr/lib64/libglib-2.0.so.0 #3 0x00007ff725fc9150 in ?? () from /usr/lib64/libglib-2.0.so.0 #4 0x00007ff725fc92bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #5 0x00007ff7345c77fb in QEventDispatcherGlib::processEvents (this=0x7ff6f8000b10, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #6 0x00007ff73456c79a in QEventLoop::exec (this=this@entry=0x7ff704b55c80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #7 0x00007ff73438ad4a in QThread::exec (this=<optimized out>) at thread/qthread.cpp:515 #8 0x00007ff735ebf9e5 in ?? () from /usr/lib64/libQt5DBus.so.5 #9 0x00007ff73438fc8d in QThreadPrivate::start (arg=0x7ff736132d60) at thread/qthread_unix.cpp:368 #10 0x00007ff727edb4f9 in start_thread () from /lib64/libpthread.so.0 #11 0x00007ff733c8ef2f in clone () from /lib64/libc.so.6 Thread 3 (Thread 0x7ff7058c5700 (LWP 5602)): #0 0x00007ff727ee187d in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007ff70a2d183b in ?? () from /usr/lib64/dri/nouveau_dri.so #2 0x00007ff70a2d1547 in ?? () from /usr/lib64/dri/nouveau_dri.so #3 0x00007ff727edb4f9 in start_thread () from /lib64/libpthread.so.0 #4 0x00007ff733c8ef2f in clone () from /lib64/libc.so.6 Thread 2 (Thread 0x7ff7124b5700 (LWP 5601)): #0 0x00007ff733c846db in poll () from /lib64/libc.so.6 #1 0x00007ff72570c307 in ?? () from /usr/lib64/libxcb.so.1 #2 0x00007ff72570df3a in xcb_wait_for_event () from /usr/lib64/libxcb.so.1 #3 0x00007ff7147d1969 in ?? () from /usr/lib64/libQt5XcbQpa.so.5 #4 0x00007ff73438fc8d in QThreadPrivate::start (arg=0x55bfaa44b4f0) at thread/qthread_unix.cpp:368 #5 0x00007ff727edb4f9 in start_thread () from /lib64/libpthread.so.0 #6 0x00007ff733c8ef2f in clone () from /lib64/libc.so.6 Thread 1 (Thread 0x7ff739a4e340 (LWP 5599)): [KCrash Handler] #6 0x00007ff739651e64 in QListData::size (this=0x3aa75004c) at /usr/include/qt5/QtCore/qlist.h:113 #7 QList<KEduVocIdentifier>::count (this=0x3aa75004c) at /usr/include/qt5/QtCore/qlist.h:343 #8 KEduVocDocument::identifierCount (this=0x55bfaa685590) at /usr/src/debug/libkeduvocdocument-18.12.3-lp151.1.1.x86_64/keduvocdocument/keduvocdocument.cpp:679 #9 0x000055bfa9a0e0fd in StatisticsModel::columnCount (this=<optimized out>, parent=...) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/statistics/statisticsmodel.cpp:155 #10 0x00007ff73450aefd in QAbstractItemModel::hasIndex (this=this@entry=0x55bfaad950c0, row=row@entry=0, column=column@entry=0, parent=...) at itemmodels/qabstractitemmodel.cpp:1768 #11 0x000055bfa99ca193 in ReadonlyContainerModel::index (this=0x55bfaad950c0, row=0, column=0, parent=...) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/collection/readonlycontainermodel.cpp:57 #12 0x000055bfa9a0d699 in LessonStatisticsView::saveExpandedStatus (this=this@entry=0x55bfaa4a9830) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/statistics/lessonstatisticsview.cpp:189 #13 0x000055bfa9a0d8b1 in LessonStatisticsView::~LessonStatisticsView (this=0x55bfaa4a9830, __in_chrg=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/statistics/lessonstatisticsview.cpp:121 #14 LessonStatisticsView::~LessonStatisticsView (this=0x55bfaa4a9830, __in_chrg=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/statistics/lessonstatisticsview.cpp:122 #15 0x00007ff73459afab in QObjectPrivate::deleteChildren (this=this@entry=0x55bfaac435a0) at kernel/qobject.cpp:1993 #16 0x00007ff73535189c in QWidget::~QWidget (this=0x55bfaae88250, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1701 #17 0x00007ff7354bffa9 in QSplitter::~QSplitter (this=0x55bfaae88250, __in_chrg=<optimized out>) at widgets/qsplitter.cpp:984 #18 0x00007ff73459afab in QObjectPrivate::deleteChildren (this=this@entry=0x55bfaae97fc0) at kernel/qobject.cpp:1993 #19 0x00007ff73535189c in QWidget::~QWidget (this=0x55bfaac17560, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1701 #20 0x00007ff735351ad9 in QWidget::~QWidget (this=0x55bfaac17560, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1725 #21 0x00007ff73459afab in QObjectPrivate::deleteChildren (this=this@entry=0x55bfaaa96070) at kernel/qobject.cpp:1993 #22 0x00007ff73535189c in QWidget::~QWidget (this=0x55bfaa7d8a60, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1701 #23 0x00007ff738cbd4bd in KMainWindow::~KMainWindow (this=0x55bfaa7d8a60, __in_chrg=<optimized out>) at /usr/src/debug/kxmlgui-5.55.0-lp151.1.1.x86_64/src/kmainwindow.cpp:401 #24 0x000055bfa998fa39 in StatisticsMainWindow::~StatisticsMainWindow (this=this@entry=0x55bfaa7d8a60, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/statistics/statisticsmainwindow.cpp:69 #25 0x000055bfa998fad9 in StatisticsMainWindow::~StatisticsMainWindow (this=0x55bfaa7d8a60, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/statistics/statisticsmainwindow.cpp:77 #26 0x000055bfa9930802 in ParleyMainWindow::~ParleyMainWindow (this=0x55bfaa6051d0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/parleymainwindow.cpp:113 #27 0x000055bfa9930879 in ParleyMainWindow::~ParleyMainWindow (this=0x55bfaa6051d0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/parleymainwindow.cpp:115 #28 0x00007ff73459df50 in QObject::event (this=this@entry=0x55bfaa6051d0, e=e@entry=0x55bfaa89aab0) at kernel/qobject.cpp:1238 #29 0x00007ff73535629b in QWidget::event (this=this@entry=0x55bfaa6051d0, event=event@entry=0x55bfaa89aab0) at kernel/qwidget.cpp:9346 #30 0x00007ff73546956b in QMainWindow::event (this=this@entry=0x55bfaa6051d0, event=event@entry=0x55bfaa89aab0) at widgets/qmainwindow.cpp:1563 #31 0x00007ff738cbf9a1 in KMainWindow::event (this=this@entry=0x55bfaa6051d0, ev=ev@entry=0x55bfaa89aab0) at /usr/src/debug/kxmlgui-5.55.0-lp151.1.1.x86_64/src/kmainwindow.cpp:877 #32 0x00007ff738d054c5 in KXmlGuiWindow::event (this=0x55bfaa6051d0, ev=0x55bfaa89aab0) at /usr/src/debug/kxmlgui-5.55.0-lp151.1.1.x86_64/src/kxmlguiwindow.cpp:125 #33 0x00007ff7353173dc in QApplicationPrivate::notify_helper (this=this@entry=0x55bfaa46d020, receiver=receiver@entry=0x55bfaa6051d0, e=e@entry=0x55bfaa89aab0) at kernel/qapplication.cpp:3723 #34 0x00007ff73531eca4 in QApplication::notify (this=0x7ffcec401550, receiver=0x55bfaa6051d0, e=0x55bfaa89aab0) at kernel/qapplication.cpp:3482 #35 0x00007ff73456e768 in QCoreApplication::notifyInternal2 (receiver=0x55bfaa6051d0, event=event@entry=0x55bfaa89aab0) at kernel/qcoreapplication.cpp:1024 #36 0x00007ff734570edd in QCoreApplication::sendEvent (event=0x55bfaa89aab0, receiver=<optimized out>) at kernel/qcoreapplication.h:233 #37 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x55bfaa449d60) at kernel/qcoreapplication.cpp:1699 #38 0x00007ff734571468 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1553 #39 0x00007ff7345c81b3 in postEventSourceDispatch (s=0x55bfaa4d6ae0) at kernel/qeventdispatcher_glib.cpp:276 #40 0x00007ff725fc8e87 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #41 0x00007ff725fc9230 in ?? () from /usr/lib64/libglib-2.0.so.0 #42 0x00007ff725fc92bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #43 0x00007ff7345c77df in QEventDispatcherGlib::processEvents (this=0x55bfaa4d9cd0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #44 0x00007ff73456c79a in QEventLoop::exec (this=this@entry=0x7ffcec401460, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #45 0x00007ff734575844 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1297 #46 0x000055bfa992f5c0 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/parley-18.12.3-lp151.1.2.x86_64/src/main.cpp:145 [Inferior 1 (process 5599) detached] Reported using DrKonqi
A possibly relevant merge request was started @ https://invent.kde.org/education/parley/-/merge_requests/4
Git commit a7cff050be34b49623f54915f0271e0a847b3abf by Hartmut Riesenbeck. Committed on 10/11/2020 at 20:30. Pushed by aacid into branch 'master'. Fix segfault when leaving statistics main window Reproducible segfault when leaving statistics main window with unsaved changes and clicking on save in the query dialog. The segfault is thrown by KEduVocDocument pointer access which was deleted before during destruction of StatisticsMainWindow. Both document and widget are destructed by deleteLater. With the conditions mentioned above the order of destruction becomes to the document deleted first which leads to the segfault. The fix is done by changing the pointer for KEduVocDocument to a shared pointer which was not deleted until the last using class is deleted. M +0 -1 src/collection/containermodel.cpp M +1 -2 src/collection/readonlycontainermodel.cpp M +4 -2 src/collection/readonlycontainermodel.h M +7 -7 src/editor/editor.cpp M +1 -1 src/editor/editor.h M +3 -3 src/editor/inflectionwidget.cpp M +4 -2 src/editor/inflectionwidget.h M +2 -2 src/editor/summarywordwidget.cpp M +5 -3 src/editor/summarywordwidget.h M +2 -2 src/editor/vocabularydelegate.cpp M +2 -2 src/editor/vocabularydelegate.h M +3 -3 src/editor/vocabularyview.cpp M +3 -2 src/editor/vocabularyview.h M +18 -27 src/parleydocument.cpp M +4 -3 src/parleydocument.h M +7 -7 src/parleymainwindow.cpp M +1 -1 src/parleymainwindow.h M +6 -6 src/practice/practicestatemachine.cpp M +1 -1 src/scripts/scripting/parley.cpp M +2 -2 src/statistics/lessonstatisticsview.cpp M +5 -4 src/statistics/statisticsmainwindow.cpp M +5 -3 src/statistics/statisticsmainwindow.h M +3 -3 src/statistics/statisticsmodel.cpp M +2 -2 src/statistics/statisticsmodel.h https://invent.kde.org/education/parley/commit/a7cff050be34b49623f54915f0271e0a847b3abf
Git commit ad449a1e78de2f320afa4e02a9598e077850cf42 by Albert Astals Cid, on behalf of Hartmut Riesenbeck. Committed on 11/11/2020 at 22:15. Pushed by aacid into branch 'release/20.12'. Fix segfault when leaving statistics main window Reproducible segfault when leaving statistics main window with unsaved changes and clicking on save in the query dialog. The segfault is thrown by KEduVocDocument pointer access which was deleted before during destruction of StatisticsMainWindow. Both document and widget are destructed by deleteLater. With the conditions mentioned above the order of destruction becomes to the document deleted first which leads to the segfault. The fix is done by changing the pointer for KEduVocDocument to a shared pointer which was not deleted until the last using class is deleted. (cherry picked from commit a7cff050be34b49623f54915f0271e0a847b3abf) M +0 -1 src/collection/containermodel.cpp M +1 -2 src/collection/readonlycontainermodel.cpp M +4 -2 src/collection/readonlycontainermodel.h M +7 -7 src/editor/editor.cpp M +1 -1 src/editor/editor.h M +3 -3 src/editor/inflectionwidget.cpp M +4 -2 src/editor/inflectionwidget.h M +2 -2 src/editor/summarywordwidget.cpp M +5 -3 src/editor/summarywordwidget.h M +2 -2 src/editor/vocabularydelegate.cpp M +2 -2 src/editor/vocabularydelegate.h M +3 -3 src/editor/vocabularyview.cpp M +3 -2 src/editor/vocabularyview.h M +18 -27 src/parleydocument.cpp M +4 -3 src/parleydocument.h M +7 -7 src/parleymainwindow.cpp M +1 -1 src/parleymainwindow.h M +6 -6 src/practice/practicestatemachine.cpp M +1 -1 src/scripts/scripting/parley.cpp M +2 -2 src/statistics/lessonstatisticsview.cpp M +5 -4 src/statistics/statisticsmainwindow.cpp M +5 -3 src/statistics/statisticsmainwindow.h M +3 -3 src/statistics/statisticsmodel.cpp M +2 -2 src/statistics/statisticsmodel.h https://invent.kde.org/education/parley/commit/ad449a1e78de2f320afa4e02a9598e077850cf42
*** Bug 424054 has been marked as a duplicate of this bug. ***
*** Bug 426445 has been marked as a duplicate of this bug. ***
I still see SegFault on latest git master when closing parley intentionally. Steps to reproduce: 1. $ parley 2. Click "Practice" of Spanish English Vocabulary 3. Now click "File" > "Quit" $ src/parley --version parley 21.7.70 Backtrace: Thread 1 "parley" received signal SIGSEGV, Segmentation fault. 0x00007fffee2bd8f9 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 (gdb) bt #0 0x00007fffee2bd8f9 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #1 0x00007fffee2bd9c3 in QObject::destroyed(QObject*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007fffee2c57b5 in QObject::~QObject() () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fffee2c587d in QObject::~QObject() () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00000000005097cf in std::_Sp_counted_ptr<KEduVocDocument*, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0x19d9b60) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:377 #5 0x0000000000452541 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0x19d9b60) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155 #6 0x00000000004524fa in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=0x7fffff7ff230) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730 #7 0x00000000004524be in std::__shared_ptr<KEduVocDocument, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x7fffff7ff228) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169 #8 0x0000000000451cf8 in std::shared_ptr<KEduVocDocument>::~shared_ptr() (this=0x7fffff7ff228) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103 #9 0x000000000044f66d in ParleyMainWindow::slotUpdateWindowCaption() (this=0x986400) at /home/rootmonk/Downloads/todo/hacking/parley/src/parleymainwindow.cpp:154 #10 0x00000000004530e4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (ParleyMainWindow::*)()>::call(void (ParleyMainWindow::*)(), ParleyMainWindow*, void**) (f=(void (ParleyMainWindow::*)(ParleyMainWindow * const)) 0x44f620 <ParleyMainWindow::slotUpdateWindowCaption()>, o=0x986400, arg=0x7fffff7ff480) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:152 #11 0x0000000000453058 in QtPrivate::FunctionPointer<void (ParleyMainWindow::*)()>::call<QtPrivate::List<>, void>(void (ParleyMainWindow::*)(), ParleyMainWindow*, void**) (f=(void (ParleyMainWindow::*)(ParleyMainWindow * const)) 0x44f620 <ParleyMainWindow::slotUpdateWindowCaption()>, o=0x986400, arg=0x7fffff7ff480) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:185 #12 0x0000000000452f85 in QtPrivate::QSlotObject<void (ParleyMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0xcaf750, r=0x986400, a=0x7fffff7ff480, ret=0x0)
A possibly relevant merge request was started @ https://invent.kde.org/education/parley/-/merge_requests/10
Git commit 3a8c04e903f2f8ac66024a2c171641a1d6f6d7fa by Hartmut Riesenbeck. Committed on 25/03/2021 at 19:41. Pushed by aacid into branch 'master'. Fix segfault on quit Reproducible segmentation fault when start practice a collection and quit immediately from statistics main window without changing anything. The segfault is only shown on console output. DrKonqi window doesn't open. The segfault appears when ParleyDocument member is deleted in ParleyMainWindows destructor. The destroyed signal of ParleyDocuments KEduVocDocument member calls a slot to update the window cation which want to access an already deleted KEduVocDocument pointer. To fix this, the destroyed signal connection is removed before deleting the ParleyDocument member in ParleyMainWindows destructor. M +6 -0 src/parleymainwindow.cpp https://invent.kde.org/education/parley/commit/3a8c04e903f2f8ac66024a2c171641a1d6f6d7fa
Git commit e06375db7b71d4b0216e02bea9595da0cd5fc9b8 by Albert Astals Cid, on behalf of Hartmut Riesenbeck. Committed on 25/03/2021 at 22:32. Pushed by aacid into branch 'release/21.04'. Fix segfault on quit Reproducible segmentation fault when start practice a collection and quit immediately from statistics main window without changing anything. The segfault is only shown on console output. DrKonqi window doesn't open. The segfault appears when ParleyDocument member is deleted in ParleyMainWindows destructor. The destroyed signal of ParleyDocuments KEduVocDocument member calls a slot to update the window cation which want to access an already deleted KEduVocDocument pointer. To fix this, the destroyed signal connection is removed before deleting the ParleyDocument member in ParleyMainWindows destructor. (cherry picked from commit 3a8c04e903f2f8ac66024a2c171641a1d6f6d7fa) M +6 -0 src/parleymainwindow.cpp https://invent.kde.org/education/parley/commit/e06375db7b71d4b0216e02bea9595da0cd5fc9b8