Accepting request 831705 from KDE:Applications
KDE Release 20.08.1 OBS-URL: https://build.opensuse.org/request/show/831705 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/akonadi-server?expand=0&rev=74
This commit is contained in:
69
0001-AgentBase-Fix-crash-in-setOnline.patch
Normal file
69
0001-AgentBase-Fix-crash-in-setOnline.patch
Normal file
@@ -0,0 +1,69 @@
|
||||
From 66d1135d127331fb3a2a7e047b0577d7e67d3dc2 Mon Sep 17 00:00:00 2001
|
||||
From: Ahmad Samir <a.samirh78@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 10:20:37 +0000
|
||||
Subject: [PATCH] AgentBase: Fix crash in setOnline
|
||||
|
||||
When setOnline tries to access the mSettings member after the latter has
|
||||
been deleted we get a crash; mSettings is deleted in quit() or cleanup(),
|
||||
therefore it looks like a race condition: the Agent is about to quit, but
|
||||
some other code calls setOnline leading to a crash. It looks like this can
|
||||
happen in more than one way, e.g. via a dbus call (from AgentInstance), or
|
||||
via a sub-class of AgentBase calling setOnline directly. Use a bool member
|
||||
var, modelled after how AgentInstance uses a similar logic.
|
||||
|
||||
BUG: 418844
|
||||
(cherry picked from commit 53574eb6fccc8f6a03dcea6c1ca1aa02dd895209)
|
||||
---
|
||||
src/agentbase/agentbase.cpp | 8 ++++++++
|
||||
src/agentbase/agentbase_p.h | 2 ++
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/agentbase/agentbase.cpp b/src/agentbase/agentbase.cpp
|
||||
index 94d8ccc02..025f90c69 100644
|
||||
--- a/src/agentbase/agentbase.cpp
|
||||
+++ b/src/agentbase/agentbase.cpp
|
||||
@@ -333,6 +333,7 @@ AgentBasePrivate::AgentBasePrivate(AgentBase *parent)
|
||||
, mNeedsNetwork(false)
|
||||
, mOnline(false)
|
||||
, mDesiredOnlineState(false)
|
||||
+ , mPendingQuit(false)
|
||||
, mSettings(nullptr)
|
||||
, mChangeRecorder(nullptr)
|
||||
, mTracer(nullptr)
|
||||
@@ -1006,6 +1007,11 @@ void AgentBase::setNeedsNetwork(bool needsNetwork)
|
||||
void AgentBase::setOnline(bool state)
|
||||
{
|
||||
Q_D(AgentBase);
|
||||
+
|
||||
+ if (d->mPendingQuit) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
d->mDesiredOnlineState = state;
|
||||
d->mSettings->setValue(QStringLiteral("Agent/DesiredOnlineState"), state);
|
||||
setOnlineInternal(state);
|
||||
@@ -1126,6 +1132,8 @@ void AgentBase::quit()
|
||||
|
||||
void AgentBase::aboutToQuit()
|
||||
{
|
||||
+ Q_D(AgentBase);
|
||||
+ d->mPendingQuit = true;
|
||||
}
|
||||
|
||||
void AgentBase::cleanup()
|
||||
diff --git a/src/agentbase/agentbase_p.h b/src/agentbase/agentbase_p.h
|
||||
index a70846ce9..2353e7281 100644
|
||||
--- a/src/agentbase/agentbase_p.h
|
||||
+++ b/src/agentbase/agentbase_p.h
|
||||
@@ -88,6 +88,8 @@ public:
|
||||
bool mOnline;
|
||||
bool mDesiredOnlineState;
|
||||
|
||||
+ bool mPendingQuit;
|
||||
+
|
||||
QSettings *mSettings = nullptr;
|
||||
|
||||
ChangeRecorder *mChangeRecorder = nullptr;
|
||||
--
|
||||
2.28.0
|
||||
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a18ce2d8c9e9fc7f195a7546ee5b7c2541e37ceb7afa0aa25e9ade4f54de2813
|
||||
size 1583960
|
@@ -1,11 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEzBAABCgAdFiEE8jJ15L8Qr8HfaRSm29LOiT4tHIcFAl8tAfEACgkQ29LOiT4t
|
||||
HIeyGQf/WBjC9yqHmRB2JbP3ur8G3p6KN8Cz9Zad+IE+MS1p8uZyKG6mYYCPLvd3
|
||||
ByhRmXOZ0BH+WWTmKXtqKPvPZjq0oObCKMtyD079PVvdxhh1DYuPL7fvh2qlcD9D
|
||||
+UC+iLM4lSVylUAaukfJDAMHIXC+sLivSkH5ptalwXycLdgGZkBSanX5IDu+v2th
|
||||
fcpK/rzWTJIEhcLS52JFvlRKMaq02ICh1MSbTjwFddZVJ/arG35A+wHJXy/LP1PV
|
||||
qH27qV9QhxNNEgUucMkLOksbH9UjWEOeCaqh1uoQjcBU3lr5GI1H/Ks1h4EvNs2I
|
||||
Gch2W1Y32e90Pc2i64MmV25n5VFvgw==
|
||||
=XL8C
|
||||
-----END PGP SIGNATURE-----
|
3
akonadi-20.08.1.tar.xz
Normal file
3
akonadi-20.08.1.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f930de5fae376f138e87c6d67357ab799a3397d865b55c50f771b4427d85f495
|
||||
size 1584016
|
11
akonadi-20.08.1.tar.xz.sig
Normal file
11
akonadi-20.08.1.tar.xz.sig
Normal file
@@ -0,0 +1,11 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEzBAABCgAdFiEE8jJ15L8Qr8HfaRSm29LOiT4tHIcFAl9N7loACgkQ29LOiT4t
|
||||
HIeRTwf+MAKCUk8rbM6zroOTFSsESKIf0dyT6iqznaox+IcV3Ck7grTVvsE8FFcU
|
||||
GK+T6uPQ2qmGqpkn8BG4BANW9BH5R9Cp7nPLOWa21cDIP0lYQf+rNX/bItGc2Ths
|
||||
Ut3H0/yqiYxVhAX61t8YOkXIZIHJzakUX+RQmIYYRhs2Bb2sQyulYUFsBDWsO87l
|
||||
zPHU+Kw0sxt/Q6S0JWmv1/aePVwbEDUXbrCMcC0xRCx2lJpYO9LvHqAyW2NMkjPH
|
||||
cJ0wiZFFSXbv6/SZOr0XXJoEYOW++VP5BVBQ1+uV9qwUz2Jggn2RGD5wH162lTkA
|
||||
aclYz4QXtNNDgOnJgUQZJ00G0jqMEA==
|
||||
=DOHk
|
||||
-----END PGP SIGNATURE-----
|
@@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 2 11:40:13 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
- Add upstream patch to fix crashes:
|
||||
* 0001-AgentBase-Fix-crash-in-setOnline.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 1 20:48:47 UTC 2020 - Luca Beltrame <lbeltrame@kde.org>
|
||||
|
||||
- Update to 20.08.1
|
||||
* New bugfix release
|
||||
* For more details please see:
|
||||
* https://kde.org/announcements/releases/2020-09-apps-update
|
||||
- No code change since 20.08.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 9 09:07:56 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
|
||||
|
@@ -22,7 +22,7 @@
|
||||
%{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
|
||||
%bcond_without lang
|
||||
Name: akonadi-server
|
||||
Version: 20.08.0
|
||||
Version: 20.08.1
|
||||
Release: 0
|
||||
Summary: PIM Storage Service
|
||||
License: LGPL-2.1-or-later
|
||||
@@ -30,6 +30,7 @@ Group: System/GUI/KDE
|
||||
URL: https://akonadi-project.org
|
||||
Source: https://download.kde.org/stable/release-service/%{version}/src/%{rname}-%{version}.tar.xz
|
||||
Source99: akonadi-server-rpmlintrc
|
||||
Patch0: 0001-AgentBase-Fix-crash-in-setOnline.patch
|
||||
BuildRequires: extra-cmake-modules >= %{kf5_version}
|
||||
BuildRequires: kf5-filesystem
|
||||
BuildRequires: libQt5Sql-private-headers-devel
|
||||
@@ -166,7 +167,7 @@ service.
|
||||
%lang_package
|
||||
|
||||
%prep
|
||||
%setup -q -n %{rname}-%{version}
|
||||
%autosetup -p1 -n %{rname}-%{version}
|
||||
|
||||
%build
|
||||
%cmake_kf5 -d build -- -DINSTALL_QSQLITE_IN_QT_PREFIX=TRUE -DQT_PLUGINS_DIR=%{_kf5_plugindir} -DINSTALL_APPARMOR=FALSE
|
||||
|
Reference in New Issue
Block a user