diff --git a/0057-multipathd-Stop-double-counting-map-failures-for-no_.patch b/0057-multipathd-Stop-double-counting-map-failures-for-no_.patch new file mode 100644 index 0000000000000000000000000000000000000000..5683b7e2cf0a02b6e57b621683cba6212f01e291 --- /dev/null +++ b/0057-multipathd-Stop-double-counting-map-failures-for-no_.patch @@ -0,0 +1,38 @@ +From aa60bd6ba17f02733e39f6e6120ba5c3e96d035b Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 30 May 2024 12:54:57 -0400 +Subject: [PATCH] multipathd: Stop double counting map failures for + no_path_retry > 0 + +If no_path_retry was greater than 0, multipathd was counting a map +failure when recovery mode was entered, and again when queueing was +disabled. The first one is incorrect, since the map is still queueing. + +Signed-off-by: Benjamin Marzinski +Reviewed-by: Martin Wilck +--- + libmultipath/structs_vec.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c +index c0c5cc90..ccc4efc7 100644 +--- a/libmultipath/structs_vec.c ++++ b/libmultipath/structs_vec.c +@@ -844,10 +844,13 @@ int verify_paths(struct multipath *mpp) + void update_queue_mode_del_path(struct multipath *mpp) + { + int active = count_active_paths(mpp); ++ bool is_queueing = mpp->features && ++ strstr(mpp->features, "queue_if_no_path"); + + if (active == 0) { + enter_recovery_mode(mpp); +- if (mpp->no_path_retry != NO_PATH_RETRY_QUEUE) ++ if (mpp->no_path_retry == NO_PATH_RETRY_FAIL || ++ (mpp->no_path_retry == NO_PATH_RETRY_UNDEF && !is_queueing)) + mpp->stat_map_failures++; + } + condlog(2, "%s: remaining active paths: %d", mpp->alias, active); +-- +2.43.0 + diff --git a/multipath-tools.spec b/multipath-tools.spec index cb7bd89927fe17ee66fad64bec07c0d16f59302c..4fe66382175cff8b5c5d232851124e94c90520b3 100644 --- a/multipath-tools.spec +++ b/multipath-tools.spec @@ -2,7 +2,7 @@ Name: multipath-tools Version: 0.8.4 -Release: 33 +Release: 34 Summary: Tools to manage multipath devices with the device-mapper License: GPL-2.0-or-later and LGPL-2.0-only URL: http://christophe.varoqui.free.fr/ @@ -66,6 +66,7 @@ Patch53: 0053-multipathd-don-t-print-so-many-add-map-messages.patch Patch54: 0054-libmultipath-make-dm_get_map-status-return-codes-sym.patch Patch55: 0055-multipathd-fix-check_path-errors-with-removed-map.patch Patch56: 0056-multipathd-ignore-duplicated-multipathd-command-keys.patch +Patch57: 0057-multipathd-Stop-double-counting-map-failures-for-no_.patch BuildRequires: multipath-tools, libcmocka, libcmocka-devel BuildRequires: gcc, libaio-devel, userspace-rcu-devel, device-mapper-devel >= 1.02.89 @@ -214,6 +215,9 @@ fi %changelog +* Mon Jul 7 2025 kouwenqi - 0.8.4-34 +- multipathd: fix map failure counting for no_path_retry > 0 + * Fri Jun 27 2025 kouwenqi - 0.8.4-33 - multipathd: ignore duplicated multipathd command keys