Hello community, here is the log from the commit of package akonadi-server for openSUSE:Factory checked in at 2020-09-09 17:51:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/akonadi-server (Old) and /work/SRC/openSUSE:Factory/.akonadi-server.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "akonadi-server" Wed Sep 9 17:51:22 2020 rev:74 rq:831705 version:20.08.1 Changes: -------- --- /work/SRC/openSUSE:Factory/akonadi-server/akonadi-server.changes 2020-08-18 11:55:43.271272392 +0200 +++ /work/SRC/openSUSE:Factory/.akonadi-server.new.3399/akonadi-server.changes 2020-09-09 17:53:33.882749408 +0200 @@ -1,0 +2,15 @@ +Wed Sep 2 11:40:13 UTC 2020 - Christophe Giboudeaux <christo...@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 <lbeltr...@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 + +------------------------------------------------------------------- Old: ---- akonadi-20.08.0.tar.xz akonadi-20.08.0.tar.xz.sig New: ---- 0001-AgentBase-Fix-crash-in-setOnline.patch akonadi-20.08.1.tar.xz akonadi-20.08.1.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ akonadi-server.spec ++++++ --- /var/tmp/diff_new_pack.aQ2Su3/_old 2020-09-09 17:53:35.654750848 +0200 +++ /var/tmp/diff_new_pack.aQ2Su3/_new 2020-09-09 17:53:35.654750848 +0200 @@ -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 @@ 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 @@ %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 ++++++ 0001-AgentBase-Fix-crash-in-setOnline.patch ++++++ >From 66d1135d127331fb3a2a7e047b0577d7e67d3dc2 Mon Sep 17 00:00:00 2001 From: Ahmad Samir <a.samir...@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 ++++++ akonadi-20.08.0.tar.xz -> akonadi-20.08.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.08.0/CMakeLists.txt new/akonadi-20.08.1/CMakeLists.txt --- old/akonadi-20.08.0/CMakeLists.txt 2020-08-07 09:07:21.000000000 +0200 +++ new/akonadi-20.08.1/CMakeLists.txt 2020-09-01 08:33:15.000000000 +0200 @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -set(PIM_VERSION "5.15.0") +set(PIM_VERSION "5.15.1") project(Akonadi VERSION ${PIM_VERSION}) set(CMAKE_CXX_STANDARD 17) @@ -36,7 +36,7 @@ include(AkonadiMacros) set(QT_REQUIRED_VERSION "5.13.0") -set(RELEASE_SERVICE_VERSION "20.08.0") +set(RELEASE_SERVICE_VERSION "20.08.1") set(AKONADI_FULL_VERSION "${PIM_VERSION} (${RELEASE_SERVICE_VERSION})") configure_file(akonadifull-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/akonadifull-version.h @ONLY) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.08.0/po/zh_CN/akonadi_knut_resource.po new/akonadi-20.08.1/po/zh_CN/akonadi_knut_resource.po --- old/akonadi-20.08.0/po/zh_CN/akonadi_knut_resource.po 2020-08-07 09:07:21.000000000 +0200 +++ new/akonadi-20.08.1/po/zh_CN/akonadi_knut_resource.po 2020-09-01 08:33:15.000000000 +0200 @@ -8,7 +8,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-07-13 07:46+0200\n" -"PO-Revision-Date: 2020-07-31 15:03\n" +"PO-Revision-Date: 2020-08-12 20:42\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/akonadi-20.08.0/po/zh_CN/libakonadi5.po new/akonadi-20.08.1/po/zh_CN/libakonadi5.po --- old/akonadi-20.08.0/po/zh_CN/libakonadi5.po 2020-08-07 09:07:21.000000000 +0200 +++ new/akonadi-20.08.1/po/zh_CN/libakonadi5.po 2020-09-01 08:33:15.000000000 +0200 @@ -8,7 +8,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-07-13 07:46+0200\n" -"PO-Revision-Date: 2020-07-31 15:03\n" +"PO-Revision-Date: 2020-08-12 20:42\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n"