Bug 356700 - Segmentation fault after saving to a file and pressing OK
Summary: Segmentation fault after saving to a file and pressing OK
Status: RESOLVED FIXED
Alias: None
Product: kdebugsettings
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: FreeBSD Ports FreeBSD
: NOR crash
Target Milestone: ---
Assignee: Laurent Montel
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-14 21:14 UTC by Tobias C. Berner
Modified: 2016-12-16 00:08 UTC (History)
3 users (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 Tobias C. Berner 2015-12-14 21:14:32 UTC
kdebugsettings 15.11.90 segfaults reproducibly by saving to a file, and then pressing OK in kdebugsettings.

Reproducible: Always

Steps to Reproduce:
1. Select "Save As..." and enter some filename in the dialog
2. Back in kdebugsettings pres "OK"


Actual Results:  
segfault


Backtrace:
[New Thread 81b4a5000 (LWP 101494)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 80d415000 (LWP 100260)]
0x0000000802889f04 in QGenericAtomicOps<QBasicAtomicOps<4> >::load<int> (
    _q_value=@0x811d6fda8: <error reading variable>)
    at ../../include/QtCore/../../src/corelib/thread/qgenericatomic.h:90
90      ../../include/QtCore/../../src/corelib/thread/qgenericatomic.h: No such file or directory.
(gdb) bt
#0  0x0000000802889f04 in QGenericAtomicOps<QBasicAtomicOps<4> >::load<int> (_q_value=@0x811d6fda8: <error reading variable>)
    at ../../include/QtCore/../../src/corelib/thread/qgenericatomic.h:90
#1  QBasicAtomicInteger<int>::load (this=0x811d6fda8) at ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:118
#2  0x000000080288a9a9 in QtPrivate::RefCount::deref (this=0x811d6fda8) at ../../include/QtCore/../../src/corelib/tools/qrefcount.h:60
#3  0x0000000802894e9f in QString::~QString (this=0x81b5dbc20) at ../../include/QtCore/../../src/corelib/tools/qstring.h:1053
#4  0x00000008029b8f35 in QRegExpEngineKey::~QRegExpEngineKey (this=0x81b5dbc20) at tools/qregexp.cpp:862
#5  0x00000008029b97c9 in QHashNode<QRegExpEngineKey, QCache<QRegExpEngineKey, QRegExpEngine>::Node>::~QHashNode (this=0x81b5dbc10)
    at ../../include/QtCore/../../src/corelib/tools/qhash.h:237
#6  0x00000008029b977d in QHash<QRegExpEngineKey, QCache<QRegExpEngineKey, QRegExpEngine>::Node>::deleteNode2 (node=0x81b5dbc10) at ../../include/QtCore/../../src/corelib/tools/qhash.h:585
#7  0x000000080298789a in QHashData::free_helper (this=0x80d41ab40,
    node_delete=0x8029b9760 <QHash<QRegExpEngineKey, QCache<QRegExpEngineKey, QRegExpEngine>::Node>::deleteNode2(QHashData::Node*)>) at tools/qhash.cpp:491
#8  0x00000008029b9753 in QHash<QRegExpEngineKey, QCache<QRegExpEngineKey, QRegExpEngine>::Node>::freeData (this=0x7fffffffe260, x=0x80d41ab40)
    at ../../include/QtCore/../../src/corelib/tools/qhash.h:621
#9  0x00000008029b968a in QHash<QRegExpEngineKey, QCache<QRegExpEngineKey, QRegExpEngine>::Node>::~QHash (this=0x7fffffffe260) at ../../include/QtCore/../../src/corelib/tools/qhash.h:342
#10 0x00000008029b96ea in QHash<QRegExpEngineKey, QCache<QRegExpEngineKey, QRegExpEngine>::Node>::clear (
    this=0x802e95ad0 <(anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::holder+16>) at ../../include/QtCore/../../src/corelib/tools/qhash.h:627
#11 0x00000008029b9630 in QCache<QRegExpEngineKey, QRegExpEngine>::clear (this=0x802e95ac0 <(anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::holder>) at tools/qcache.h:119
#12 0x00000008029b9578 in QCache<QRegExpEngineKey, QRegExpEngine>::~QCache (this=0x802e95ac0 <(anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::holder>) at tools/qcache.h:87
#13 0x00000008029b5cb9 in (anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::Holder::~Holder() (
    this=0x802e95ac0 <(anonymous namespace)::Q_QGS_globalEngineCache::innerFunction()::holder>) at tools/qregexp.cpp:3816
#14 0x00000008036d3ddc in __cxa_finalize () from /lib/libc.so.7
#15 0x000000080366487c in exit () from /lib/libc.so.7
#16 0x000000000040e486 in _start ()
Comment 1 Andrius Štikonas 2016-05-20 17:13:04 UTC
Note that this looks very similar to bug 363294
Comment 2 Peter Wu 2016-10-11 22:35:23 UTC
Could this be fixed by this fix in kbookmarks:
https://commits.kde.org/kbookmarks/68db76e9d8afce989d246768ebed7a12f9414b34

 I noticed that Kate and Spectacle would also crash when the file dialog was opened once, breaking on QRegExp showed this:
#0  QRegExp::QRegExp (this=0x7fffffffa5d0, pattern="[/+]", cs=Qt::CaseSensitive, syntax=QRegExp::RegExp) at tools/qregexp.cpp:3956
#1  0x00007fffdbb8f646 in KBookmarkManager::findByAddress(QString const&) () from /usr/lib/libKF5Bookmarks.so.5
#2  0x00007fffdc0bb82a in ?? () from /usr/lib/libKF5KIOFileWidgets.so.5
#3  0x00007fffdc0bfab7 in KFilePlacesModel::Private::loadBookmarkList() () from /usr/lib/libKF5KIOFileWidgets.so.5
#4  0x00007fffdc0c0403 in KFilePlacesModel::Private::_k_reloadBookmarks() () from /usr/lib/libKF5KIOFileWidgets.so.5
#5  0x00007fffdc0c1a3e in KFilePlacesModel::KFilePlacesModel(QObject*) () from /usr/lib/libKF5KIOFileWidgets.so.5
#6  0x00007fffdc0b706b in KFileWidget::KFileWidget(QUrl const&, QWidget*) () from /usr/lib/libKF5KIOFileWidgets.so.5
Comment 3 Andrius Štikonas 2016-10-11 23:21:43 UTC
In case or Partition Manager these crashes appeared after migration from QRegExp to QRegularExpression... And even replacing all QStringLiterals with QLatin1Strings
Comment 4 michael 2016-10-21 04:01:27 UTC
Patch seems to fix the problem on my system.
Comment 5 Andrius Štikonas 2016-12-16 00:08:04 UTC
Seems to be fixed in Qt 5.7.1