From 9001270f73dac2e895c80a133fd9ba8795ef503ec8814831dc4157fd3b9d0a5b Mon Sep 17 00:00:00 2001 From: Wolfgang Bauer Date: Thu, 29 Oct 2020 16:24:31 +0000 Subject: [PATCH] Accepting request 844891 from home:Vogtinator:plasma5.20 - Add patch to fix memory leak (kde#428048): * 0001-Autodelete-smapsRunnable.patch OBS-URL: https://build.opensuse.org/request/show/844891 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/libksysguard5?expand=0&rev=279 --- 0001-Autodelete-smapsRunnable.patch | 46 +++++++++++++++++++++++++++++ libksysguard5.changes | 6 ++++ libksysguard5.spec | 2 ++ 3 files changed, 54 insertions(+) create mode 100644 0001-Autodelete-smapsRunnable.patch diff --git a/0001-Autodelete-smapsRunnable.patch b/0001-Autodelete-smapsRunnable.patch new file mode 100644 index 0000000..a2efb00 --- /dev/null +++ b/0001-Autodelete-smapsRunnable.patch @@ -0,0 +1,46 @@ +From ebcf87527c32db0b6685c63a450489d2c6727069 Mon Sep 17 00:00:00 2001 +From: David Edmundson +Date: Thu, 29 Oct 2020 11:07:36 +0000 +Subject: [PATCH] Autodelete smapsRunnable + +The runnable has an early return on error conditions. This means +finished() might never be called. + +Now we've removed the accessor and provide the return value in the +signal we can just set autoDelete. + +BUG: 428048 +--- + processcore/processes_linux_p.cpp | 2 -- + processcore/read_procsmaps_runnable.cpp | 2 +- + 2 files changed, 1 insertion(+), 3 deletions(-) + +diff --git a/processcore/processes_linux_p.cpp b/processcore/processes_linux_p.cpp +index 6882f82..ee5559c 100644 +--- a/processcore/processes_linux_p.cpp ++++ b/processcore/processes_linux_p.cpp +@@ -558,8 +558,6 @@ bool ProcessesLocal::updateProcessInfo( long pid, Process *process) + Q_EMIT processUpdated(pid, { { Process::VmPSS, pss } }); + }); + +- connect(runnable, &ReadProcSmapsRunnable::finished, runnable, &QObject::deleteLater); +- + QThreadPool::globalInstance()->start(runnable); + + if(!d->readProcStat(dir, process)) success = false; +diff --git a/processcore/read_procsmaps_runnable.cpp b/processcore/read_procsmaps_runnable.cpp +index ecace51..b91466b 100644 +--- a/processcore/read_procsmaps_runnable.cpp ++++ b/processcore/read_procsmaps_runnable.cpp +@@ -14,7 +14,7 @@ ReadProcSmapsRunnable::ReadProcSmapsRunnable(const QString &dir) + : QObject() + , m_dir(dir) + { +- setAutoDelete(false); ++ setAutoDelete(true); + } + + void ReadProcSmapsRunnable::run() +-- +2.25.1 + diff --git a/libksysguard5.changes b/libksysguard5.changes index 5034130..acec8ac 100644 --- a/libksysguard5.changes +++ b/libksysguard5.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Oct 29 15:03:03 UTC 2020 - Fabian Vogt + +- Add patch to fix memory leak (kde#428048): + * 0001-Autodelete-smapsRunnable.patch + ------------------------------------------------------------------- Tue Oct 27 20:43:50 UTC 2020 - Fabian Vogt diff --git a/libksysguard5.spec b/libksysguard5.spec index 2124704..0733058 100644 --- a/libksysguard5.spec +++ b/libksysguard5.spec @@ -30,6 +30,8 @@ Source1: https://download.kde.org/stable/plasma/%{version}/libksysguard-% Source2: plasma.keyring %endif Source3: baselibs.conf +# PATCH-FIX-UPSTREAM +Patch1: 0001-Autodelete-smapsRunnable.patch BuildRequires: extra-cmake-modules >= 1.2.0 BuildRequires: kf5-filesystem BuildRequires: xz