Do not retry on ECONNREFUSED in command line tools.

- Resolves: RHEL-106594
This commit is contained in:
Chris Lumens 2025-08-11 11:18:02 -04:00
parent 834fdc824d
commit 371c43a831
2 changed files with 46 additions and 2 deletions

40
001-econnrefused.patch Normal file
View File

@ -0,0 +1,40 @@
From 125b434943f57778816135ad147fc827fa706e99 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Mon, 4 Aug 2025 10:38:00 -0400
Subject: [PATCH] Med: libpacemaker: Do not retry on ECONNREFUSED in tools.
This is a regression introduced by e438946787. In that patch, what
we're trying to do is retry IPC connections between daemons. If a
daemon gets ECONNREFUSED when it initiates an IPC connection, the most
likely reason is that another daemon has been killed and is restarting
but is not yet ready to accept connections. Waiting and retrying
repeatedly is an acceptable way to deal with this.
However, if a command line tool gets ECONNREFUSED, it's more likely that
the problem is the cluster isn't running at all. In this case, waiting
and retrying just introduces a delay for a situation that will never be
resolved. Reverting just the part in pcmk_cluster_queries.c should fix
this problem without affecting any of the daemons - they don't call this
code.
Fixes RHEL-106594
---
lib/pacemaker/pcmk_cluster_queries.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/pacemaker/pcmk_cluster_queries.c b/lib/pacemaker/pcmk_cluster_queries.c
index 8a08d99180..2f91a68738 100644
--- a/lib/pacemaker/pcmk_cluster_queries.c
+++ b/lib/pacemaker/pcmk_cluster_queries.c
@@ -360,7 +360,7 @@ ipc_connect(data_t *data, enum pcmk_ipc_server server, pcmk_ipc_callback_t cb,
pcmk_register_ipc_callback(api, cb, data);
}
- rc = pcmk__connect_ipc_retry_conrefused(api, dispatch_type, 5);
+ rc = pcmk__connect_ipc(api, dispatch_type, 5);
if (rc != pcmk_rc_ok) {
if (rc == EREMOTEIO) {
data->pcmkd_state = pcmk_pacemakerd_state_remote;
--
2.49.0

View File

@ -41,7 +41,7 @@
## can be incremented to build packages reliably considered "newer"
## than previously built packages with the same pcmkversion)
%global pcmkversion 3.0.1
%global specversion 1
%global specversion 2
## Upstream commit (full commit ID, abbreviated commit ID, or tag) to build
%global commit 9a5e54bae85847c4bb6ed7c7fb06103ebebbc64a
@ -199,7 +199,7 @@ Url: https://www.clusterlabs.org/
Source0: https://codeload.github.com/%{github_owner}/%{name}/tar.gz/%{archive_github_url}
Source1: pacemaker.sysusers
# upstream commits
#Patch001: 001-xxxx.patch
Patch001: 001-econnrefused.patch
Requires: resource-agents
Requires: %{pkgname_pcmk_libs}%{?_isa} = %{version}-%{release}
@ -791,6 +791,10 @@ exit 0
%{_datadir}/pkgconfig/pacemaker-schemas.pc
%changelog
* Mon Aug 11 2025 Chris Lumens <clumens@redhat.com> - 3.0.1-2
- Do not retry on ECONNREFUSED in command line tools.
- Resolves: RHEL-106594
* Tue Jun 24 2025 Chris Lumens <clumens@redhat.com> - 3.0.1-1
- Rebase on upstream 3.0.1-rc1
- Use dbus to detect completion of systemd resource start/stop actions