https://bugs.kde.org/show_bug.cgi?id=369663

            Bug ID: 369663
           Summary: Memory leak in Pager widget when switching workspaces
           Product: plasmashell
           Version: 5.7.95
          Platform: Archlinux Packages
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: Pager
          Assignee: h...@kde.org
          Reporter: adotf...@gmail.com
                CC: plasma-b...@kde.org

Pager widget leaks memory  when I switch between empty workspaces. As a bonus
it often shows wrong desktop names after switch (pager is set show names as i3
assigns them), and does not show workspace until it has window on it (probably
intended?)

Reproducible: Always

Steps to Reproduce:
1. Open some windows for pager to actually show workspaces. For example I open
some windows on desktops with names "1" and "10" (I use i3wm).
2. Switch to an empty workspace, for example to desktop "2", then to another
empty one several times.

Actual Results:  
Plasmashell would allocate a huge amount of memory. A few switches and it
bloated to 1.9GB, I've seen it go as large as 5GB just during this testing, its
impossible to use in produciton. Additionally it also freezes while allocating
memory.

Expected Results:  
Should not leak memory and not freeze :)

I've attached to plasmashell several times to see if its stuck in a loop
somewhere, but all the time I'm getting different backtraces (all of them have
libpagerplugin.so, with this one as most common one):
#0  0x00007f2341eb4d3d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*,
void**) () at /usr/lib/libQt5Qml.so.5
#1  0x00007f2341e5f02c in QQmlData::signalEmitted(QAbstractDeclarativeData*,
QObject*, int, void**) () at /usr/lib/libQt5Qml.so.5
#2  0x00007f233ed9bd7c in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/libQt5Core.so.5
#3  0x00007f22877b69db in  () at
/usr/lib/qt/qml/org/kde/plasma/private/pager/libpagerplugin.so
#4  0x00007f22877b747f in  () at
/usr/lib/qt/qml/org/kde/plasma/private/pager/libpagerplugin.so
#5  0x00007f233ed9b9ce in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/libQt5Core.so.5
#6  0x00007f233ed9b9ce in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/libQt5Core.so.5
#7  0x00007f2341a15b31 in KWindowSystem::numberOfDesktopsChanged(int) () at
/usr/lib/libKF5WindowSystem.so.5
#8  0x00007f232c374f97 in  () at
/usr/lib/qt/plugins/kf5/org.kde.kwindowsystem.platforms/KF5WindowSystemX11Plugin.so
#9  0x00007f233ed6d37f in
QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) ()
at /usr/lib/libQt5Core.so.5
#10 0x00007f232feedc14 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*)
() at /usr/lib/libQt5XcbQpa.so.5
#11 0x00007f232feee8a5 in QXcbConnection::processXcbEvents() () at
/usr/lib/libQt5XcbQpa.so.5
#12 0x00007f233ed9c4b9 in QObject::event(QEvent*) () at
/usr/lib/libQt5Core.so.5
#13 0x00007f233fcdae0c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /usr/lib/libQt5Widgets.so.5
#14 0x00007f233fce2581 in QApplication::notify(QObject*, QEvent*) () at
/usr/lib/libQt5Widgets.so.5
#15 0x00007f233ed6fde0 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() at /usr/lib/libQt5Core.so.5
#16 0x00007f233ed7256d in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#17 0x00007f233edc4303 in  () at /usr/lib/libQt5Core.so.5
#18 0x00007f233976b587 in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#19 0x00007f233976b7f0 in  () at /usr/lib/libglib-2.0.so.0
#20 0x00007f233976b89c in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#21 0x00007f233edc470f in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
at /usr/lib/libQt5Core.so.5
#22 0x00007f233ed6e23a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/usr/lib/libQt5Core.so.5
#23 0x00007f233ed7673c in QCoreApplication::exec() () at
/usr/lib/libQt5Core.so.5
#24 0x000000000041c762 in  ()
#25 0x00007f233e3e3291 in __libc_start_main () at /usr/lib/libc.so.6
#26 0x000000000041caea in _start ()

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to