From c709b083d2e798970de0d4df5758764203d105b9 Mon Sep 17 00:00:00 2001
From: Ken Gaillot <kgaillot@redhat.com>
Date: Tue, 14 Jan 2025 14:11:04 -0600
Subject: [PATCH 14/16] Low: libcrmcluster: better detect remote nodes in peer
 cache

---
 lib/cluster/membership.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c
index e033f4e754..04bcc396f7 100644
--- a/lib/cluster/membership.c
+++ b/lib/cluster/membership.c
@@ -158,7 +158,13 @@ pcmk__cluster_lookup_remote_node(const char *node_name)
      */
     node = pcmk__search_node_caches(0, node_name, NULL,
                                     pcmk__node_search_cluster_member);
-    if ((node != NULL) && (node->xml_id == NULL)) {
+    if ((node != NULL)
+        && ((node->xml_id == NULL)
+            /* This assumes only Pacemaker Remote nodes have their XML ID the
+             * same as their node name
+             */
+            || pcmk__str_eq(node->name, node->xml_id, pcmk__str_none))) {
+
         /* node_name could be a pointer into the cache entry being removed, so
          * reassign it to a copy before the original gets freed
          */
-- 
2.43.0

