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.