Catch more specific OSError instead of SMTPException in dnf-automatic email emitter

Resolves: RHEL-49743
This commit is contained in:
Marek Blaha 2024-10-07 15:20:05 +02:00
parent 22979496db
commit 7d13817a6a
2 changed files with 39 additions and 1 deletions

View File

@ -0,0 +1,33 @@
From ea2d17cc484c7c49686145f4b2e98e4b73b9c967 Mon Sep 17 00:00:00 2001
From: Evan Goode <mail@evangoo.de>
Date: Mon, 13 Mar 2023 14:50:41 -0400
Subject: [PATCH] smtplib: catch OSError, not SMTPException
Some, but not all, types of connection error are caught by smtplib and
reraised as an smtplib.SMTPException. Notably, TimeoutError,
socket.gaierror (name resolution failure), and ConnectionRefusedError
and are not caught.
The more generic OSError should be caught here instead.
Resolves #1905
---
dnf/automatic/emitter.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dnf/automatic/emitter.py b/dnf/automatic/emitter.py
index 4aea4b02..648f1a1d 100644
--- a/dnf/automatic/emitter.py
+++ b/dnf/automatic/emitter.py
@@ -106,7 +106,7 @@ class EmailEmitter(Emitter):
smtp = smtplib.SMTP(self._conf.email_host, timeout=300)
smtp.sendmail(email_from, email_to, message.as_string())
smtp.close()
- except smtplib.SMTPException as exc:
+ except OSError as exc:
msg = _("Failed to send an email via '%s': %s") % (
self._conf.email_host, exc)
logger.error(msg)
--
2.46.1

View File

@ -69,7 +69,7 @@ It supports RPMs, modules and comps groups & environments.
Name: dnf Name: dnf
Version: 4.14.0 Version: 4.14.0
Release: 18%{?dist} Release: 19%{?dist}
Summary: %{pkg_summary} Summary: %{pkg_summary}
# For a breakdown of the licensing, see PACKAGE-LICENSING # For a breakdown of the licensing, see PACKAGE-LICENSING
License: GPLv2+ License: GPLv2+
@ -105,6 +105,7 @@ Patch27: 0027-Add-detection-for-ostree-based-systems-and-warn-user.patch
Patch28: 0028-Update-ostree-bootc-host-system-check.patch Patch28: 0028-Update-ostree-bootc-host-system-check.patch
Patch29: 0029-Update-bootc-hosts-message-to-point-to-bootc-help.patch Patch29: 0029-Update-bootc-hosts-message-to-point-to-bootc-help.patch
Patch30: 0030-Allow-installroot-on-read-only-bootc-system.patch Patch30: 0030-Allow-installroot-on-read-only-bootc-system.patch
Patch31: 0031-smtplib-catch-OSError-not-SMTPException.patch
BuildArch: noarch BuildArch: noarch
@ -394,6 +395,10 @@ popd
%{python3_sitelib}/%{name}/automatic/ %{python3_sitelib}/%{name}/automatic/
%changelog %changelog
* Mon Oct 07 2024 Marek Blaha <mblaha@redhat.com> - 4.14.0-19
- Catch more specific OSError instead of SMTPException in dnf-automatic email
emitter (RHEL-49743)
* Tue Oct 01 2024 Petr Pisar <ppisar@redhat.com> - 4.14.0-18 * Tue Oct 01 2024 Petr Pisar <ppisar@redhat.com> - 4.14.0-18
- More specific error message on a locked OSTree system or a bootc system - More specific error message on a locked OSTree system or a bootc system
without a usr-overlay (RHEL-49670) without a usr-overlay (RHEL-49670)