import CS git resource-agents-4.9.0-54.el8_10.32

This commit is contained in:
AlmaLinux RelEng Bot 2026-05-05 07:03:46 -04:00
parent 10fefef15c
commit 573a8cc8dc
4 changed files with 238 additions and 1 deletions

View File

@ -0,0 +1,46 @@
From 66885ea0227e847b571608015b150d391a6234d7 Mon Sep 17 00:00:00 2001
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
Date: Mon, 23 Feb 2026 13:35:58 +0100
Subject: [PATCH] db2: set reintegration when promotion is successful
---
heartbeat/db2 | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/heartbeat/db2 b/heartbeat/db2
index 82f2f82c3..4420b9989 100755
--- a/heartbeat/db2
+++ b/heartbeat/db2
@@ -955,6 +955,16 @@ db2_promote() {
PRIMARY/PEER/*|PRIMARY/REMOTE_CATCHUP/*|PRIMARY/REMOTE_CATCHUP_PENDING/CONNECTED|Primary/Peer)
# nothing to do, only update pacemaker's view
echo MASTER > $STATE_FILE
+
+ if [ -n "$remote_host" ]; then
+ for db in $dblist
+ do
+ reint_attr="db2hadr-${inst1}_${inst2}_${db}_reint"
+ ocf_log debug "Promotion succeeded, setting $reint_attr = 1"
+ crm_attribute -n "$reint_attr" -N "$remote_host" -v "1" -l forever
+ done
+ fi
+
return $OCF_SUCCESS
;;
@@ -981,6 +991,15 @@ db2_promote() {
# update pacemaker's view
echo MASTER > $STATE_FILE
+ if [ -n "$remote_host" ]; then
+ for db in $dblist
+ do
+ reint_attr="db2hadr-${inst1}_${inst2}_${db}_reint"
+ ocf_log debug "Promotion succeeded, setting $reint_attr = 1"
+ crm_attribute -n "$reint_attr" -N "$remote_host" -v "1" -l forever
+ done
+ fi
+
return $OCF_SUCCESS
fi

View File

@ -0,0 +1,32 @@
From 3712b1f52bccddc767ad6f16ec67d6c8c29f1f71 Mon Sep 17 00:00:00 2001
From: Valentin Vidic <vvidic@valentin-vidic.from.hr>
Date: Sun, 3 Apr 2022 20:39:01 +0200
Subject: [PATCH] db2: fix bashism
dash only allows -a as AND operator.
---
heartbeat/db2 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/heartbeat/db2 b/heartbeat/db2
index ea24d33fc8..4a4b2f477f 100755
--- a/heartbeat/db2
+++ b/heartbeat/db2
@@ -407,7 +407,7 @@ db2_start() {
# partition is explicitly specified, activate without
# partition information. This allows db2 instances without
# partition support to be managed.
- if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -a "$db2sql/db2nodes.cfg" ]; then
+ if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -e "$db2sql/db2nodes.cfg" ]; then
start_opts=""
fi
@@ -511,7 +511,7 @@ db2_stop_bg() {
rc=$OCF_SUCCESS
- if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -a "$db2sql/db2nodes.cfg" ]; then
+ if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -e "$db2sql/db2nodes.cfg" ]; then
stop_opts=""
fi

View File

@ -0,0 +1,143 @@
From 26c0d48bc69da1859f1ce5205a8bb6eaf6297b81 Mon Sep 17 00:00:00 2001
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
Date: Wed, 25 Mar 2026 10:46:09 +0100
Subject: [PATCH] db2: do not use db2stop, as it sends truncation messages,
which in some cases are not delivered
This caused divergence in the log, and the user would have to manually rebuild
the DB to recover from it.
---
heartbeat/db2 | 104 +++++++-------------------------------------------
1 file changed, 13 insertions(+), 91 deletions(-)
diff --git a/heartbeat/db2 b/heartbeat/db2
index 4420b9989..9de18639d 100755
--- a/heartbeat/db2
+++ b/heartbeat/db2
@@ -596,45 +596,10 @@ db2_start() {
return $OCF_SUCCESS
}
-#
-# helper function to be spawned
-# so we can detect a hang of the db2stop command
-#
-db2_stop_bg() {
- local rc output
- local stop_opts="dbpartitionnum $db2node"
-
- rc=$OCF_SUCCESS
-
- if [ -z "$OCF_RESKEY_dbpartitionnum" ] && ! [ -e "$db2sql/db2nodes.cfg" ]; then
- stop_opts=""
- fi
-
- if output=$(runasdb2 db2stop force $stop_opts)
- then
- ocf_log info "DB2 instance $instance($db2node) stopped: $output"
- else
- case $output in
- *SQL1032N*)
- #SQL1032N No start database manager command was issued
- ocf_log info "$output"
- ;;
-
- *)
- ocf_log err "DB2 instance $instance($db2node) stop failed: $output"
- rc=$OCF_ERR_GENERIC
- esac
- fi
-
- return $rc
-}
-
#
# Stop the given db2 database instance
#
db2_stop() {
- local stop_timeout grace_timeout stop_bg_pid i must_kill
-
# remove master score
master_score -D -l reboot
@@ -647,67 +612,24 @@ db2_stop() {
return $OCF_SUCCESS
fi
- stop_timeout=${OCF_RESKEY_CRM_meta_timeout:-20000}
-
- # grace_time is 4/5 (unit is ms)
- grace_timeout=$((stop_timeout/1250))
-
- # start db2stop in background as this may hang
- db2_stop_bg &
- stop_bg_pid=$!
-
- # wait for grace_timeout
- i=0
- while [ $i -lt $grace_timeout ]
- do
- kill -0 $stop_bg_pid 2>/dev/null || break;
- sleep 1
- i=$((i+1))
- done
-
- # collect exit status but don't hang
- if kill -0 $stop_bg_pid 2>/dev/null
- then
- stoprc=1
- kill -9 $stop_bg_pid 2>/dev/null
- else
- wait $stop_bg_pid
- stoprc=$?
- fi
-
- must_kill=0
-
- if [ $stoprc -ne 0 ]
+ # db2nkill kills *all* partitions on the node
+ if [ -x $db2bin/db2nkill ]
then
- ocf_log warn "DB2 instance $instance($db2node): db2stop failed, using db2nkill"
- must_kill=1
- elif ! db2_instance_dead
+ logasdb2 $db2bin/db2nkill $db2node
+ elif [ -x $db2bin/db2_kill ]
then
- ocf_log warn "DB2 instance $instance($db2node): db2stop indicated success but there a still processes, using db2nkill"
- must_kill=1
+ logasdb2 $db2bin/db2_kill
fi
- if [ $must_kill -eq 1 ]
- then
- # db2nkill kills *all* partitions on the node
- if [ -x $db2bin/db2nkill ]
- then
- logasdb2 $db2bin/db2nkill $db2node
- elif [ -x $db2bin/db2_kill ]
- then
- logasdb2 $db2bin/db2_kill
- fi
-
- # loop forever (or lrmd kills us due to timeout) until the
- # instance is dead
- while ! db2_instance_dead
- do
- ocf_log info "DB2 instance $instance($db2node): waiting for processes to exit"
- sleep 1
- done
+ # loop forever (or lrmd kills us due to timeout) until the
+ # instance is dead
+ while ! db2_instance_dead
+ do
+ ocf_log info "DB2 instance $instance($db2node): waiting for processes to exit"
+ sleep 1
+ done
- ocf_log info "DB2 instance $instance($db2node) is now dead"
- fi
+ ocf_log info "DB2 instance $instance($db2node) is now dead"
return $OCF_SUCCESS
}

View File

@ -73,7 +73,7 @@
Name: resource-agents
Summary: Open Source HA Reusable Cluster Resource Scripts
Version: 4.9.0
Release: 54%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}.30
Release: 54%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}.32
License: GPLv2+ and LGPLv2+
URL: https://github.com/ClusterLabs/resource-agents
%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
@ -182,6 +182,9 @@ Patch85: RHEL-124815-db2-fix-variable-name.patch
Patch86: RHEL-102979-1-nfsserver-support-non-clustered-kerberized-mounts.patch
Patch87: RHEL-102979-2-nfsserver-fix-error-message.patch
Patch88: RHEL-152316-portblock-check-inverse-action.patch
Patch89: RHEL-153157-db2-set-reintegration-when-promotion-is-successful.patch
Patch90: RHEL-166181-1-db2-fix-bashism.patch
Patch91: RHEL-166181-2-db2-do-not-use-db2stop-to-avoid-divergence-in-the-log.patch
# bundle patches
Patch1000: 7-gcp-bundled.patch
@ -459,6 +462,9 @@ exit 1
%patch -p1 -P 86
%patch -p1 -P 87
%patch -p1 -P 88
%patch -p1 -P 89
%patch -p1 -P 90
%patch -p1 -P 91
chmod 755 heartbeat/nova-compute-wait
chmod 755 heartbeat/NovaEvacuate
@ -1055,6 +1061,16 @@ ccs_update_schema > /dev/null 2>&1 ||:
%{_usr}/lib/ocf/lib/heartbeat/OCF_*.pm
%changelog
* Fri Apr 10 2026 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.9.0-54.32
- db2: do not use db2stop to avoid divergence in the log
Resolves: RHEL-166181
* Thu Mar 19 2026 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.9.0-54.31
- db2: set reintegration when promotion is successful
Resolves: RHEL-153157
* Fri Feb 27 2026 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.9.0-54.30
- portblock: check inverse action state file for non-promotable
resources to avoid issues when doing e.g. block followed by unblock