Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.11.0
-
None
-
-
199c49517e184db09cbb5eff60e15d73096b330b
Description
With these env variables:
LANGUAGE=es:en_US LANG=es_ES.UTF-8
I get a crash in ucol_close() (aka in ICU) when using 6 concurrent threads of QCollator to sort strings, and ICUs are supposed to be thread-safe.
#0 0x0000000000000000 in ?? () #1 0x00007fffef341b8b in QCollatorPrivate::cleanup (this=0xcf5980) at tools/qcollator_icu.cpp:102 #2 QCollatorPrivate::init() () at tools/qcollator_icu.cpp:57 #3 0x00007fffef341dab in QCollator::compare (this=0xcd2a30, s1=0xcc7168, len1=6, s2=0xf8d298, len2=11) at tools/qcollator_icu.cpp:109 #4 0x00007ffff6b35c30 in KFileItemModel::sortRoleCompare (this=this@entry=0xcd2a00, a=a@entry=0x98f900, b=b@entry=0xbbd3d0, collator=...) at /g/5kde/kde/applications/dolphin/src/kitemviews/kfileitemmodel.cpp:1839 #5 0x00007ffff6b362a2 in KFileItemModel::lessThan (this=this@entry=0xcd2a00, a=0x98f900, b=0xbbd3d0, collator=...) at /g/5kde/kde/applications/dolphin/src/kitemviews/kfileitemmodel.cpp:1710 #6 0x00007ffff6b3c715 in KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)>::operator() (__closure=0x7fffbd6b8c68, b=<optimized out>, a=<optimized out>) at /g/5kde/kde/applications/dolphin/src/kitemviews/kfileitemmodel.cpp:1720 #7 merge<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &) (begin=..., pivot=..., end=..., lessThan=...) at /g/5kde/kde/applications/dolphin/src/kitemviews/private/kfileitemmodelsortalgorithm.h:115 #8 0x00007ffff6b3c7db in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #9 0x00007ffff6b3c7b4 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #10 0x00007ffff6b3c796 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #11 0x00007ffff6b3c796 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #12 0x00007ffff6b3c796 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #13 0x00007ffff6b3c796 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #14 0x00007ffff6b3c796 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #15 0x00007ffff6b3c796 in mergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, const KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> &, QList<KFileItemModel::ItemData*>::iterator) (end=..., lessThan=..., begin=...) at /usr/include/qt5/QtCore/qlist.h:239 #16 0x00007ffff6b3d738 in parallelMergeSort<QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)> >(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)>, int, int) (begin=..., end=..., lessThan=..., numberOfThreads=<optimized out>, parallelMergeSortingThreshold=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:239 #17 0x00007ffff6b322fb in QtConcurrent::StoredFunctorCall5<void, void (*)(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator, KFi---Type <return> leItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)>, int, int), QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator, KFileItemModel::sort(QList<KFileItemModel::ItemData*>::iterator, QList<KFileItemModel::ItemData*>::iterator) const::<lambda(const KFileItemModel::ItemData*, const KFileItemModel::ItemData*)>, int, int>::runFunctor(void) (this=<optimized out>) at /usr/include/qt5/QtCore/qlist.h:239 #18 0x00007ffff6b40eaf in non-virtual thunk to QtConcurrent::RunFunctionTask<void>::run() () at /usr/include/qt5/QtCore/qfutureinterface.h:293 #19 0x00007fffef2b3181 in QThreadPoolThread::run() () at thread/qthreadpool.cpp:101 #20 0x00007fffef2ba93c in QThreadPrivate::start(void*) () at thread/qthread_unix.cpp:367 #21 0x00007fffeb226554 in start_thread (arg=<optimized out>) at pthread_create.c:463 #22 0x00007ffff6f00fdf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
More information in https://phabricator.kde.org/D13814
Attachments
For Gerrit Dashboard: QTBUG-69361 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
234359,6 | Clean before copying any QCollator | 5.11 | qt/qtbase | Status: MERGED | +2 | 0 |