From aef400ff51408fe49dfcf716cc791916852522a1 Mon Sep 17 00:00:00 2001 From: neri Date: Wed, 24 May 2023 10:14:16 +0200 Subject: [PATCH] fix: panic when unable to delete files --- src/deleter.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/deleter.rs b/src/deleter.rs index f7e6f6a..da738d7 100644 --- a/src/deleter.rs +++ b/src/deleter.rs @@ -46,8 +46,11 @@ pub(crate) async fn delete_by_id( async fn delete_content(file_id: &str, files_dir: &Path) -> Result<(), std::io::Error> { let path = files_dir.join(file_id); - if fs::remove_file(&path).await.is_ok() { - log::info!("delete file {}", file_id); + if fs::try_exists(&path).await? { + fs::remove_file(&path).await?; + log::info!("deleted file {}", file_id); + } else { + log::warn!("expiring file {} was missing from the filesystem", file_id); } Ok(()) } @@ -58,7 +61,7 @@ async fn wait_for_file_expiry(receiver: &mut Receiver<()>, db: &PgPool) { .fetch_one(db) .await .expect("could not fetch expiring files from database"); - let next_timeout: std::time::Duration = match valid_till.0 { + let next_timeout = match valid_till.0 { Some(valid_till) => (max( 0, valid_till.unix_timestamp() - OffsetDateTime::now_utc().unix_timestamp(),