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:
2020-09-09 15:51:22 +00:00
committed by Git OBS Bridge
7 changed files with 101 additions and 16 deletions

View 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

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a18ce2d8c9e9fc7f195a7546ee5b7c2541e37ceb7afa0aa25e9ade4f54de2813
size 1583960

View File

@@ -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
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f930de5fae376f138e87c6d67357ab799a3397d865b55c50f771b4427d85f495
size 1584016

View 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-----

View File

@@ -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>

View File

@@ -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