From b984da21220732a687e3d2008c0346d90a5be8b9 Mon Sep 17 00:00:00 2001 From: Floris Bruynooghe Date: Thu, 30 Mar 2023 10:58:19 +0200 Subject: [PATCH 1/2] fix(imex): transfer::get_backup must always free ongoing process When the ongoing process is cancelled it is still the responsibility of whoever took out the ongoing process to free it. This code was only freeing the ongoing process when completed normally but not when cancelled. --- src/imex/transfer.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/imex/transfer.rs b/src/imex/transfer.rs index df21d71d9c..6156628a6a 100644 --- a/src/imex/transfer.rs +++ b/src/imex/transfer.rs @@ -392,12 +392,10 @@ pub async fn get_backup(context: &Context, qr: Qr) -> Result<()> { let cancel_token = context.alloc_ongoing().await?; let res = tokio::select! { biased; - res = get_backup_inner(context, qr) => { - context.free_ongoing().await; - res - } + res = get_backup_inner(context, qr) => res, _ = cancel_token.recv() => Err(format_err!("cancelled")), }; + context.free_ongoing().await; res } From 4d707acd29e284e60c6d0665b190c10284a373e6 Mon Sep 17 00:00:00 2001 From: Floris Bruynooghe Date: Thu, 30 Mar 2023 11:01:15 +0200 Subject: [PATCH 2/2] add changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f295d13ac..73460cf017 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ ### Fixes - Do not return media from trashed messages in the "All media" view. #4247 - +- transfer::get_backup now frees ongoing process when cancelled. #4249 ## [1.112.1] - 2023-03-27