Bug 420730 - Artikulate crash when download course
Summary: Artikulate crash when download course
Status: RESOLVED DUPLICATE of bug 436510
Alias: None
Product: Artikulate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Andreas Cord-Landwehr
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2020-04-28 22:40 UTC by contact
Modified: 2021-05-15 13:16 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description contact 2020-04-28 22:40:22 UTC
Application: artikulate (1.0.0)

Qt Version: 5.13.2
Frameworks Version: 5.69.0
Operating System: Linux 5.4.25 x86_64
Windowing system: X11
Distribution: Slackware 14.2 x86_64 (post 14.2 -current)

-- Information about the crash:
- What I was doing when the application crashed:
I clicked on "Download a course" in the app and choose "French course" in the list.

The crash can be reproduced every time.

-- Backtrace:
Application: Artikulate (artikulate), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f552ea27c40 (LWP 2461))]

Thread 7 (Thread 0x7f550e763700 (LWP 2470)):
#0  0x00007f5532c33e9f in poll () at /lib64/libc.so.6
#1  0x00007f552f7233ee in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f552f72350f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f553333931b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f55332e48ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f553311ec61 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f553311fca3 in  () at /usr/lib64/libQt5Core.so.5
#7  0x00007f5532b0f06b in start_thread () at /lib64/libpthread.so.0
#8  0x00007f5532c3f72f in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f550ef64700 (LWP 2469)):
#0  0x00007f5532c33e9f in poll () at /lib64/libc.so.6
#1  0x00007f552f7233ee in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f552f72350f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f553333931b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f55332e48ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f553311ec61 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f553311fca3 in  () at /usr/lib64/libQt5Core.so.5
#7  0x00007f5532b0f06b in start_thread () at /lib64/libpthread.so.0
#8  0x00007f5532c3f72f in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f55248db700 (LWP 2468)):
#0  0x00007f5532b15966 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f553312588f in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5
#2  0x00007f5533125949 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5
#3  0x00007f55356d4db9 in  () at /usr/lib64/libQt5Quick.so.5
#4  0x00007f55356d5029 in  () at /usr/lib64/libQt5Quick.so.5
#5  0x00007f553311fca3 in  () at /usr/lib64/libQt5Core.so.5
#6  0x00007f5532b0f06b in start_thread () at /lib64/libpthread.so.0
#7  0x00007f5532c3f72f in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f5526dee700 (LWP 2464)):
#0  0x00007f5532c33e9f in poll () at /lib64/libc.so.6
#1  0x00007f552f7233ee in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f552f72350f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f553333931b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f55332e48ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f553311ec61 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f553516d8d5 in  () at /usr/lib64/libQt5Qml.so.5
#7  0x00007f553311fca3 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f5532b0f06b in start_thread () at /lib64/libpthread.so.0
#9  0x00007f5532c3f72f in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f5527fff700 (LWP 2463)):
#0  0x00007f5532c33e9f in poll () at /lib64/libc.so.6
#1  0x00007f552f7233ee in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f552f72350f in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f553333931b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#4  0x00007f55332e48ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f553311ec61 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#6  0x00007f55336b5456 in  () at /usr/lib64/libQt5DBus.so.5
#7  0x00007f553311fca3 in  () at /usr/lib64/libQt5Core.so.5
#8  0x00007f5532b0f06b in start_thread () at /lib64/libpthread.so.0
#9  0x00007f5532c3f72f in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f552dcf2700 (LWP 2462)):
#0  0x00007f5532c33e9f in poll () at /lib64/libc.so.6
#1  0x00007f552f1b8cb2 in  () at /usr/lib64/libxcb.so.1
#2  0x00007f552f1ba82a in xcb_wait_for_event () at /usr/lib64/libxcb.so.1
#3  0x00007f552e86a3c0 in  () at /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007f553311fca3 in  () at /usr/lib64/libQt5Core.so.5
#5  0x00007f5532b0f06b in start_thread () at /lib64/libpthread.so.0
#6  0x00007f5532c3f72f in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f552ea27c40 (LWP 2461)):
[KCrash Handler]
#6  0x00007f553330eb9e in QMetaObject::Connection::operator=(QMetaObject::Connection const&) () at /usr/lib64/libQt5Core.so.5
#7  0x00007f5535a3a233 in  () at /usr/lib64/libartikulatecore.so.0
#8  0x00007f5535a3930c in CourseModel::onCourseAboutToBeAdded(std::shared_ptr<ICourse>, int) () at /usr/lib64/libartikulatecore.so.0
#9  0x00007f5535a39e49 in  () at /usr/lib64/libartikulatecore.so.0
#10 0x00007f553330f8d5 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib64/libQt5Core.so.5
#11 0x00007f55359f0a53 in IResourceRepository::courseAboutToBeAdded(std::shared_ptr<ICourse>, int) () at /usr/lib64/libartikulatecore.so.0
#12 0x00007f5535a0a862 in ResourceRepository::loadCourse(QString const&) () at /usr/lib64/libartikulatecore.so.0
#13 0x00007f5535a0af6b in  () at /usr/lib64/libartikulatecore.so.0
#14 0x00007f5535a0a15a in ResourceRepository::reloadCourses() () at /usr/lib64/libartikulatecore.so.0
#15 0x00007f553330f77d in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib64/libQt5Core.so.5
#16 0x00007f55350bf504 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/libQt5Qml.so.5
#17 0x00007f55351152dd in  () at /usr/lib64/libQt5Qml.so.5
#18 0x00007f55350115dc in  () at /usr/lib64/libQt5Qml.so.5
#19 0x00007f5535013671 in  () at /usr/lib64/libQt5Qml.so.5
#20 0x00007f55350143e0 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/libQt5Qml.so.5
#21 0x00007f553509979e in QV4::Runtime::method_callPropertyLookup(QV4::ExecutionEngine*, QV4::Value*, unsigned int, QV4::Value*, int) () at /usr/lib64/libQt5Qml.so.5
#22 0x00007f5510a3dd31 in  ()
#23 0x0000000000000000 in  ()
[Inferior 1 (process 2461) detached]

Reported using DrKonqi
Comment 1 A. Wilcox (awilfox) 2020-07-06 16:17:54 UTC
Seeing this as well on Adélie Linux, Qt 5.12.6 / KF 5.71.0.  Reported at https://bts.adelielinux.org/show_bug.cgi?id=321; easy repro for me on x86_64, i586, and ppc.

qml: KNS Busy: Loading data
qml: KNS Idle: 
qml: KNS Busy: Loading data
qml: KNS Idle: 
articulate.core: Loading courses from "/home/awilcox/.local/share/artikulate/courses"
articulate.core: Loading courses from "/home/awilcox/.local/share/artikulate/courses"
articulate.core: Loading courses from "/home/awilcox/.local/share/artikulate/courses"
  OpenType support missing for "Liberation Sans", script 12
articulate.core: Loading courses from "/home/awilcox/.local/share/artikulate/courses"
  OpenType support missing for "Liberation Sans", script 12
articulate.core: Loading courses from "/home/awilcox/.local/share/artikulate/courses"
qml: KNS Busy: Installing
articulate.core: Loading courses from "/home/awilcox/.local/share/artikulate/courses"
articulate.core: Loading resource "/home/awilcox/.local/share/artikulate/courses/basic/fr/fr.xml"
ASSERT: "first >= 0" in file itemmodels/qabstractitemmodel.cpp, line 2730

Thread 1 "artikulate" received signal SIGABRT, Aborted.
__restore_sigs (set=set@entry=0x7fffffff3f00) at ./arch/x86_64/syscall_arch.h:40
40      ./arch/x86_64/syscall_arch.h: No such file or directory.
(gdb) bt
#0  __restore_sigs (set=set@entry=0x7fffffff3f00) at ./arch/x86_64/syscall_arch.h:40
#1  0x00007ffff7da33f8 in raise (sig=sig@entry=6) at src/signal/raise.c:11
#2  0x00007ffff7d694f1 in abort () at src/exit/abort.c:13
#3  0x00007ffff4ba7218 in qt_message_fatal (context=..., message=...) at global/qlogging.cpp:1907
#4  0x00007ffff4ba7e85 in QMessageLogger::fatal (this=this@entry=0x7fffffff4110, msg=msg@entry=0x7ffff4e7ee48 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:888
#5  0x00007ffff4ba0b0f in qt_assert (assertion=assertion@entry=0x7ffff4f47fc2 "first >= 0", file=file@entry=0x7ffff4f47cb0 "itemmodels/qabstractitemmodel.cpp", 
    line=line@entry=2730) at ../../include/QtCore/../../src/corelib/global/qlogging.h:91
#6  0x00007ffff4d46d9a in QAbstractItemModel::beginInsertRows (this=this@entry=0x5555562c5a60, parent=..., first=first@entry=-1, last=last@entry=-1)
    at itemmodels/qabstractitemmodel.cpp:2736
#7  0x00007ffff7b15af3 in CourseModel::onCourseAboutToBeAdded (this=0x5555562c5a60, course=..., row=-1) at /usr/include/QtCore/qabstractitemmodel.h:60
#8  0x00007ffff7b16623 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<std::shared_ptr<ICourse>, int>, void, void (CourseModel::*)(std::shared_ptr<ICourse>, int)>::call (arg=<optimized out>, o=<optimized out>, f=<optimized out>) at /usr/include/c++/8.3.0/ext/atomicity.h:96
#9  QtPrivate::FunctionPointer<void (CourseModel::*)(std::shared_ptr<ICourse>, int)>::call<QtPrivate::List<std::shared_ptr<ICourse>, int>, void> (arg=<optimized out>, 
    o=<optimized out>, f=<optimized out>) at /usr/include/QtCore/qobjectdefs_impl.h:185
#10 QtPrivate::QSlotObject<void (CourseModel::*)(std::shared_ptr<ICourse>, int), QtPrivate::List<std::shared_ptr<ICourse>, int>, void>::impl (which=<optimized out>, 
    this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/QtCore/qobjectdefs_impl.h:414
#11 0x00007ffff4dc0846 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=0x5555562c5a60, this=0x5555562c5be0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#12 QMetaObject::activate (sender=sender@entry=0x7fffffffe240, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffff4370)
    at kernel/qobject.cpp:3783
#13 0x00007ffff4dc0cf1 in QMetaObject::activate (sender=sender@entry=0x7fffffffe240, m=m@entry=0x7ffff7d45fc0 <IResourceRepository::staticMetaObject>, 
    local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffff4370) at kernel/qobject.cpp:3656
#14 0x00007ffff7acf720 in IResourceRepository::courseAboutToBeAdded (this=this@entry=0x7fffffffe240, _t1=..., _t2=<optimized out>)
    at /usr/src/packages/user/artikulate/src/artikulate-20.04.2/src/artikulatecore_autogen/TAC5DWH4SE/moc_iresourcerepository.cpp:166
#15 0x00007ffff7aea7b1 in ResourceRepository::loadCourse (this=this@entry=0x7fffffffe240, resourceFile=...) at /usr/include/c++/8.3.0/ext/atomicity.h:96
#16 0x00007ffff7aeadd1 in ResourceRepository::<lambda(QDir)>::operator() (__closure=0x7fffffff4520, dir=...)
    at /usr/src/packages/user/artikulate/src/artikulate-20.04.2/src/core/resourcerepository.cpp:98
#17 std::_Function_handler<void(QDir), ResourceRepository::reloadCourses()::<lambda(QDir)> >::_M_invoke(const std::_Any_data &, QDir &&) (__functor=..., __args#0=...)
    at /usr/include/c++/8.3.0/bits/std_function.h:297
#18 0x00007ffff7aea0ee in std::function<void (QDir)>::operator()(QDir) const (__args#0=..., this=0x7fffffff4520) at /usr/include/c++/8.3.0/bits/std_function.h:682
#19 ResourceRepository::reloadCourses (this=<optimized out>) at /usr/src/packages/user/artikulate/src/artikulate-20.04.2/src/core/resourcerepository.cpp:107
#20 0x00007ffff4dc0a0f in QMetaObject::activate (sender=<optimized out>, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffffff4900)
    at kernel/qobject.cpp:3803
#21 0x00007ffff6fcb143 in QQmlVMEMetaObject::activate(QObject*, int, void**) () from /usr/lib/libQt5Qml.so.5
#22 0x00007ffff6fcf035 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQt5Qml.so.5
#23 0x00007ffff4d98fdd in QMetaObject::metacall (object=<optimized out>, cl=<optimized out>, idx=<optimized out>, argv=<optimized out>) at kernel/qmetaobject.cpp:314
#24 0x00007ffff702d2f1 in ?? () from /usr/lib/libQt5Qml.so.5
#25 0x00007ffff6ef7306 in ?? () from /usr/lib/libQt5Qml.so.5
#26 0x00007ffff6ef762c in ?? () from /usr/lib/libQt5Qml.so.5
#27 0x00007ffff6ef7ddd in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () from /usr/lib/libQt5Qml.so.5
#28 0x00007ffff6ef815d in QV4::QObjectMethod::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) () from /usr/lib/libQt5Qml.so.5
#29 0x00007ffff6f9f681 in QV4::Runtime::method_callPropertyLookup(QV4::ExecutionEngine*, QV4::Value*, unsigned int, QV4::Value*, int) () from /usr/lib/libQt5Qml.so.5
#30 0x00007fffd1d3e811 in ?? ()
#31 0x0000000000000000 in ?? ()
Comment 2 Andreas Cord-Landwehr 2021-05-15 13:16:01 UTC
Thanks for the report, this is now fixed in the release/21.04 branch.

*** This bug has been marked as a duplicate of bug 436510 ***