https://bugs.kde.org/show_bug.cgi?id=392085
--- Comment #10 from Milian Wolff <m...@milianw.de> --- I cannot open it with the GUI, it also goes through all of my memory and then dies. But I can open it with `heaptrack_print`, which doesn't implement the full algorithm to merge backtraces. Thus it doesn't require that much memory, and can display us (some of) the results. This shows us (before the commit I just pushed) these results: ``` $ heaptrack_print heaptrack.plasmashell.27041.gz |& less reading file "heaptrack.plasmashell.27041.gz" - please wait, this might take some time... Debuggee command was: /bin/bash -c exec /usr/bin/plasmashell Debuggee command was: /usr/bin/plasmashel finished reading file, now analyzing data: MOST CALLS TO ALLOCATION FUNCTIONS 5535694 calls to allocation functions with 7.99MB peak consumption from 0x7ffff29b71e2 in /usr/lib/libQt5Core.so.5 1046100 calls with 0B peak consumption from: 0x7fffd0ff6f3c in ?? 0x7fffd10be97f in /usr/lib/dri/i965_dri.so 0x7fffd0ff7008 in /usr/lib/dri/i965_dri.so 0x7fffd1232768 in /usr/lib/dri/i965_dri.so 0x7fffd10893df in /usr/lib/dri/i965_dri.so 0x7fffd0ff7284 in ?? 0x7fffd0ff7008 in /usr/lib/dri/i965_dri.so QFileInfo::QFileInfo(QString const&) in /usr/lib/libQt5Core.so.5 QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<>) in /usr/lib/libQt5Core.so.5 0x7ffff26440e7 in /usr/lib/libstdc++.so.6 0x7ffff2a44869 in /usr/lib/libQt5Core.so.5 QByteArray::reallocData(unsigned int, QFlags<>) in /usr/lib/libQt5Core.so.5 0x7fffd0ff6f3c in ?? QArrayData::reallocateUnaligned(QArrayData*, unsigned long, unsigned long, QFlags<>) in /usr/lib/libQt5Core.so.5 0x7fff45dc62f4 in /usr/lib/qt5/qml/org/kde/plasma/core/libcorebindingsplugin.so 0x7ffff4ff40eb in /usr/lib/libQt5Qml.so.5 0x7ffff60f0e7c in /usr/lib/libKF5Plasma.so.5 Plasma::Theme::findInRectsCache(QString const&, QString const&, QRectF&) const in /usr/lib/libKF5Plasma.so.5 QV4::Runtime::method_callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) in /usr/lib/libQt5Qml.so.5 0x7fff400c27bb in ?? 0x7ffff2c1237a in /usr/lib/libQt5Core.so.5 0x7fffe2a5828d in /usr/lib/qt5/plugins/platforms/../../../libfontconfig.so.1 QTextLine::setLineWidth(double) in /usr/lib/libQt5Gui.so.5 0x7ffff51434e5 in /usr/lib/libQt5Qml.so.5 0x7fffd19992a7 in /usr/lib/qt5/qml/QtQuick/Layouts/libqquicklayoutsplugin.so 0x7ffff2a44869 in /usr/lib/libQt5Core.so.5 QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) in /usr/lib/libQt5Core.so.5 QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<>) in /usr/lib/libQt5Core.so.5 QQmlData::deferData(int, QV4::CompiledData::CompilationUnit*, QQmlContextData*) in /usr/lib/libQt5Qml.so.5 QObjectPrivate::setParent_helper(QObject*) in /usr/lib/libQt5Core.so.5 0x7ffff2b574bb in /usr/lib/libQt5Core.so.5 0x7ffff26440e7 in /usr/lib/libstdc++.so.6 QByteArray::QByteArray(int, Qt::Initialization) in /usr/lib/libQt5Core.so.5 QQuickItem::geometryChanged(QRectF const&, QRectF const&) in /usr/lib/libQt5Quick.so.5 QString::reallocData(unsigned int, bool) in /usr/lib/libQt5Core.so.5 0x7ffff5bc9bb9 in /usr/lib/libQt5Quick.so.5 QCoreApplication::notifyInternal2(QObject*, QEvent*) in /usr/lib/libQt5Core.so.5 0x7ffff501f3a4 in /usr/lib/libQt5Qml.so.5 0x7ffff2c266fb in /usr/lib/libQt5Core.so.5 QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<>) in /usr/lib/libQt5Core.so.5 0x7ffff501f3a4 in /usr/lib/libQt5Qml.so.5 QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) in /usr/lib/libQt5Qml.so.5 QMetaObject::activate(QObject*, int, int, void**) in /usr/lib/libQt5Core.so.5 QV4::Script::parse() in /usr/lib/libQt5Qml.so.5 QV4::ExecutionContext::simpleCall(QV4::Scope&, QV4::CallData*, QV4::Function*) in /usr/lib/libQt5Qml.so.5 0x7fff400be7aa in ?? QV4::QQmlValueTypeWrapper::toVariant() const in /usr/lib/libQt5Qml.so.5 QString::number(long long, int) in /usr/lib/libQt5Core.so.5 QQuickMouseArea::qt_metacall(QMetaObject::Call, int, void**) in /usr/lib/libQt5Quick.so.5 0x7ffff5088894 in /usr/lib/libQt5Qml.so.5 QV4::ExecutionContext::simpleCall(QV4::Scope&, QV4::CallData*, QV4::Function*) in /usr/lib/libQt5Qml.so.5 QV4::Runtime::method_callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) in /usr/lib/libQt5Qml.so.5 0x7ffff508e9ce in /usr/lib/libQt5Qml.so.5 0x7fff400ba1bc in ?? 0x7ffff501f3a4 in /usr/lib/libQt5Qml.so.5 0x7fff400ba1bc in ?? 0x7ffff501f3a4 in /usr/lib/libQt5Qml.so.5 QQuickItem::setSize(QSizeF const&) in /usr/lib/libQt5Quick.so.5 0x7fff40081cb5 in ?? QV4::ExecutionContext::simpleCall(QV4::Scope&, QV4::CallData*, QV4::Function*) in /usr/lib/libQt5Qml.so.5 QV4::QObjectWrapper::getQmlProperty(QQmlContextData*, QV4::String*, QV4::QObjectWrapper::RevisionMode, bool*, bool) const in /usr/lib/libQt5Qml.so.5 0x7ffff508d2b0 in /usr/lib/libQt5Qml.so.5 QV4::ExecutionContext::simpleCall(QV4::Scope&, QV4::CallData*, QV4::Function*) in /usr/lib/libQt5Qml.so.5 QV4::Runtime::method_callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) in /usr/lib/libQt5Qml.so.5 QV4::ExecutionContext::simpleCall(QV4::Scope&, QV4::CallData*, QV4::Function*) in /usr/lib/libQt5Qml.so.5 0x7fff400c221b in ?? QQuickImplicitSizeItem::qt_metacall(QMetaObject::Call, int, void**) in /usr/lib/libQt5Quick.so.5 QQuickItemPrivate::itemChange(QQuickItem::ItemChange, QQuickItem::ItemChangeData const&) in /usr/lib/libQt5Quick.so.5 0x7ffff60f06b8 in /usr/lib/libKF5Plasma.so.5 QV4::IR::Optimizer::lifeTimeIntervals() const in /usr/lib/libQt5Qml.so.5 QString::QString(int, Qt::Initialization) in /usr/lib/libQt5Core.so.5 0x7fffd0137cda in ?? QString::number(int, int) in /usr/lib/libQt5Core.so.5 QString::QString(int, Qt::Initialization) in /usr/lib/libQt5Core.so.5 QString::resize(int) in /usr/lib/libQt5Core.so.5 ... ``` Note: The above is supposed to be _one_ backtrace. But it's clearly completely broken. Just look at the end of the snippet I showed (it goes on and on): ``` QString::number(int, int) in /usr/lib/libQt5Core.so.5 QString::QString(int, Qt::Initialization) in /usr/lib/libQt5Core.so.5 QString::resize(int) in /usr/lib/libQt5Core.so.5 ``` `QString::resize` does _not_ go into `QString::number` eventually, ever. Something completely corrupted the data file. Now look at the beginning of the output: ``` Debuggee command was: /bin/bash -c exec /usr/bin/plasmashell Debuggee command was: /usr/bin/plasmashell ``` This happens because your data file contains _two_ lines starting with 'X', which should not ever happen. Somehow, you managed to inject heaptrack into two processes (bash and plasmashell), and both wrote to the same output which then corrupted the file. But again - I have no idea how that happens on your system... I'll try once more to reproduce it. Question: what do you get for `alias plasmashell` or `which plasmashell`? -- You are receiving this mail because: You are watching all bug changes.