From bc44c52ad9c95983a58ac92a595332b07211a1c6 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 8 Feb 2024 11:36:06 +0100 Subject: [PATCH] Resolves: RHEL-24829 (Release queue lock as soon as possible in ews_next_request()) --- 0002-deadlock-on-op-cancel.patch | 28 ++++++++++++++++++++++++++++ evolution-ews.spec | 7 ++++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 0002-deadlock-on-op-cancel.patch diff --git a/0002-deadlock-on-op-cancel.patch b/0002-deadlock-on-op-cancel.patch new file mode 100644 index 0000000..8d7455f --- /dev/null +++ b/0002-deadlock-on-op-cancel.patch @@ -0,0 +1,28 @@ +diff -up evolution-ews-3.28.5/src/server/e-ews-connection.c.deadlock evolution-ews-3.28.5/src/server/e-ews-connection.c +--- evolution-ews-3.28.5/src/server/e-ews-connection.c.deadlock 2024-02-06 15:56:24.994038118 +0100 ++++ evolution-ews-3.28.5/src/server/e-ews-connection.c 2024-02-06 15:57:45.656178096 +0100 +@@ -698,22 +698,20 @@ ews_next_request (gpointer _cnc) + /* Add to active job queue */ + cnc->priv->active_job_queue = g_slist_append (cnc->priv->active_job_queue, node); + ++ QUEUE_UNLOCK (cnc); ++ + if (cnc->priv->soup_session) { + SoupMessage *msg = SOUP_MESSAGE (node->msg); + + if (!e_ews_connection_utils_prepare_message (cnc, msg, node->cancellable)) { + e_ews_debug_dump_raw_soup_request (msg); +- QUEUE_UNLOCK (cnc); + + ews_response_cb (cnc->priv->soup_session, msg, node); + } else { + e_ews_debug_dump_raw_soup_request (msg); + soup_session_queue_message (cnc->priv->soup_session, msg, ews_response_cb, node); +- QUEUE_UNLOCK (cnc); + } + } else { +- QUEUE_UNLOCK (cnc); +- + ews_cancel_request (NULL, node); + } + diff --git a/evolution-ews.spec b/evolution-ews.spec index 8ca6971..3cb7df5 100644 --- a/evolution-ews.spec +++ b/evolution-ews.spec @@ -2,7 +2,7 @@ Name: evolution-ews Version: 3.28.5 -Release: 14%{?dist} +Release: 15%{?dist} Group: Applications/Productivity Summary: Evolution extension for Exchange Web Services License: LGPLv2 @@ -53,6 +53,7 @@ Patch13: evolution-ews-3.28.5-cmake-variable-name-comparison.patch Patch14: evolution-ews-3.28.5-autodiscover-improvements.patch Patch15: 0001-I-250-Mail-Calendar-attachments-can-be-broken-by-the.patch +Patch16: 0002-deadlock-on-op-cancel.patch Requires: evolution >= %{eds_evo_version} Requires: evolution-data-server >= %{eds_evo_version} @@ -108,6 +109,7 @@ This package contains translations for %{name}. %patch13 -p1 -b .cmake-variable-name-comparison %patch14 -p1 -b .autodiscover-improvements %patch15 -p1 -b .workaround-office365.com-bug +%patch16 -p1 -b .deadlock-on-cancel %build @@ -148,6 +150,9 @@ make install DESTDIR=$RPM_BUILD_ROOT %files langpacks -f _build/%{name}.lang %changelog +* Thu Feb 08 2024 Milan Crha - 3.28.5-15 +- Resolves: RHEL-24829 (Release queue lock as soon as possible in ews_next_request()) + * Wed Dec 13 2023 Milan Crha - 3.28.5-14 - Resolves: RHEL-19376 (Backport upstream patch to workaround broken text/calendar mail attachments by the server)