Christophe Giboudeaux 2020-10-10 07:39:23 +00:00 committed by Git OBS Bridge
parent f00915abed
commit 3aa2b62135
7 changed files with 31 additions and 85 deletions

View File

@ -1,69 +0,0 @@
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:f930de5fae376f138e87c6d67357ab799a3397d865b55c50f771b4427d85f495
size 1584016

View File

@ -1,11 +0,0 @@
-----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-----

3
akonadi-20.08.2.tar.xz Normal file
View File

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

View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEE8jJ15L8Qr8HfaRSm29LOiT4tHIcFAl978nkACgkQ29LOiT4t
HId2vwf/dpPY38vAqSqolr9rn8yt5vqPqkAuvFoLik4joE9KFGPosRzWo+uTB5v5
1KfB0isx1Rg/0MuWlSSDw3386NKgZr8mJqJkzbp1q8Z1RO86/z9h9Zgb4J47hupm
5BQzKzcIw/wPm7u8Xd3imjofoGTcYSgaJrSpblKB+vR2LvTno/JXX4CRE14KG3OJ
vcEcYNWB3q0rrfDLUmdskoELlvjRfW8X9RSQgtwIg08Wrwqfz5aAhSkSZ0UuyYhj
MCEkRDNqTQJa58gutJ2a6M911pYEzDb7CM2o+zfrJxNzmeycJhqaUUwsw9ESZcj3
XxUmvbBIYcCaO2MDpA3sMDTXRzOeAQ==
=BDkm
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Fri Oct 9 05:42:40 UTC 2020 - Luca Beltrame <lbeltrame@kde.org>
- Update to 20.08.2
* New bugfix release
* For more details please see:
* https://kde.org/announcements/releases/2020-10-apps-update
- Changes since 20.08.1:
* Fix AppArmor policy for Mariadb 10.5. (kde#425606)
* Fix(apparmor/postgres): Add kill signals.
* Fix(postgresql): Initialise database without locale en_US.UTF8 avalaible systemwide (kde##417721)
* Fix cancelation of CollectionSync
* AgentBase: Fix crash in setOnline (kde#418844)
- Dropped patches, now upstream:
* 0001-AgentBase-Fix-crash-in-setOnline.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Sep 2 11:40:13 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr> Wed Sep 2 11:40:13 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}')} %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
%bcond_without lang %bcond_without lang
Name: akonadi-server Name: akonadi-server
Version: 20.08.1 Version: 20.08.2
Release: 0 Release: 0
Summary: PIM Storage Service Summary: PIM Storage Service
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
@ -30,7 +30,6 @@ Group: System/GUI/KDE
URL: https://akonadi-project.org URL: https://akonadi-project.org
Source: https://download.kde.org/stable/release-service/%{version}/src/%{rname}-%{version}.tar.xz Source: https://download.kde.org/stable/release-service/%{version}/src/%{rname}-%{version}.tar.xz
Source99: akonadi-server-rpmlintrc Source99: akonadi-server-rpmlintrc
Patch0: 0001-AgentBase-Fix-crash-in-setOnline.patch
BuildRequires: extra-cmake-modules >= %{kf5_version} BuildRequires: extra-cmake-modules >= %{kf5_version}
BuildRequires: kf5-filesystem BuildRequires: kf5-filesystem
BuildRequires: libQt5Sql-private-headers-devel BuildRequires: libQt5Sql-private-headers-devel