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.

Reply via email to