Sync from SUSE:SLFO:Main drbd-utils revision f5ba740d7e4a1a00ae50ea2c44490ced
This commit is contained in:
parent
4f0a6f477a
commit
fd49eba64d
@ -1,138 +0,0 @@
|
|||||||
From 8a28be74bc6efa93931c957e54c01abb18b984fe Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lars Ellenberg <lars.ellenberg@linbit.com>
|
|
||||||
Date: Wed, 12 Jan 2022 13:50:35 +0100
|
|
||||||
Subject: [PATCH] crm-fence-peer: fix timeout with Pacemaker 2.1: milli seconds
|
|
||||||
vs seconds
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
crmadmin timeout was in milli seconds for <= 2.0.x,
|
|
||||||
but became a TIMESPEC with default seconds in >= 2.1.
|
|
||||||
|
|
||||||
Up to 2.0.4, atoi() was used, which effectively ignores "trailing garbage",
|
|
||||||
so we could get away with always appending "ms".
|
|
||||||
But with 2.0.5, it became g_option_context_parse G_OPTION_ARG_INT, which
|
|
||||||
"Cannot parse integer value “200ms” for --timeout" :-|
|
|
||||||
|
|
||||||
So grep the help message for "timeout.*milliseconds",
|
|
||||||
and if not present, append an explicit "ms" unit.
|
|
||||||
|
|
||||||
Also tolerate both ": ok" (2.1) and " (ok)" (older)
|
|
||||||
when matching the output string of crmadmin -S.
|
|
||||||
---
|
|
||||||
scripts/crm-fence-peer.9.sh | 24 +++++++++++++++++++++---
|
|
||||||
scripts/crm-fence-peer.sh | 24 +++++++++++++++++++++---
|
|
||||||
2 files changed, 42 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/crm-fence-peer.9.sh b/scripts/crm-fence-peer.9.sh
|
|
||||||
index 36590bd8..c943bf9f 100755
|
|
||||||
--- a/scripts/crm-fence-peer.9.sh
|
|
||||||
+++ b/scripts/crm-fence-peer.9.sh
|
|
||||||
@@ -392,6 +392,20 @@ check_cluster_properties()
|
|
||||||
crm_is_not_false ${stonith_enabled:-} && stonith_enabled=true || stonith_enabled=false
|
|
||||||
}
|
|
||||||
|
|
||||||
+setup_crm_timeout_unit_ms()
|
|
||||||
+{
|
|
||||||
+ # crmadmin timeout was in ms for <= 2.0.x,
|
|
||||||
+ # but became a TIMESPEC in >= 2.1.
|
|
||||||
+ # Up to 2.0.4, atoi() was used, which effectively ignores "trailing
|
|
||||||
+ # garbage", so we could get away with always appending "ms", but with
|
|
||||||
+ # 2.0.5, it became g_option_context_parse G_OPTION_ARG_INT, which
|
|
||||||
+ # "Cannot parse integer value “200ms” for --timeout" :-|
|
|
||||||
+ if crmadmin --help 2>&1 | grep -q -e "--timeout=.*in milliseconds"; then
|
|
||||||
+ crm_timeout_unit_ms=""
|
|
||||||
+ else
|
|
||||||
+ crm_timeout_unit_ms="ms"
|
|
||||||
+ fi
|
|
||||||
+}
|
|
||||||
|
|
||||||
#
|
|
||||||
# In case this is a two-node cluster (still common with
|
|
||||||
@@ -737,6 +751,7 @@ drbd_peer_fencing()
|
|
||||||
|
|
||||||
local startup_fencing stonith_enabled
|
|
||||||
check_cluster_properties
|
|
||||||
+ setup_crm_timeout_unit_ms
|
|
||||||
|
|
||||||
if ! $had_constraint_on_entry ; then
|
|
||||||
|
|
||||||
@@ -1075,14 +1090,17 @@ _check_peer_node_reachable()
|
|
||||||
# it is obviously reachable.
|
|
||||||
#
|
|
||||||
# Do this only after we have been able to reach a DC above.
|
|
||||||
- # Note: crmadmin timeout is in milli-seconds, and defaults to 30000 (30 seconds).
|
|
||||||
+ # Note: crmadmin timeout defaults to 30 seconds.
|
|
||||||
+ #
|
|
||||||
# Our variable $cibtimeout should be in deci-seconds (see above)
|
|
||||||
# (unless you use a very old version of pacemaker, so don't do that).
|
|
||||||
# Convert deci-seconds to milli-seconds, and double it.
|
|
||||||
+ # See also setup_crm_timeout_unit_ms() above.
|
|
||||||
+ #
|
|
||||||
if [[ $crmd = "online" ]] ; then
|
|
||||||
local out
|
|
||||||
- if out=$( crmadmin -t $(( cibtimeout * 200 )) -S $DRBD_PEER ) \
|
|
||||||
- && [[ $out = *"(ok)" ]]; then
|
|
||||||
+ if out=$( crmadmin -t $(( cibtimeout * 200 ))$crm_timeout_unit_ms -S $DRBD_PEER ) \
|
|
||||||
+ && [[ $out = *@(": ok"|" (ok)") ]]; then
|
|
||||||
peer_state="reachable"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
diff --git a/scripts/crm-fence-peer.sh b/scripts/crm-fence-peer.sh
|
|
||||||
index cb5deded..96786734 100755
|
|
||||||
--- a/scripts/crm-fence-peer.sh
|
|
||||||
+++ b/scripts/crm-fence-peer.sh
|
|
||||||
@@ -244,6 +244,20 @@ check_cluster_properties()
|
|
||||||
crm_is_not_false $stonith_enabled && stonith_enabled=true || stonith_enabled=false
|
|
||||||
}
|
|
||||||
|
|
||||||
+setup_crm_timeout_unit_ms()
|
|
||||||
+{
|
|
||||||
+ # crmadmin timeout was in ms for <= 2.0.x,
|
|
||||||
+ # but became a TIMESPEC in >= 2.1.
|
|
||||||
+ # Up to 2.0.4, atoi() was used, which effectively ignores "trailing
|
|
||||||
+ # garbage", so we could get away with always appending "ms", but with
|
|
||||||
+ # 2.0.5, it became g_option_context_parse G_OPTION_ARG_INT, which
|
|
||||||
+ # "Cannot parse integer value “200ms” for --timeout" :-|
|
|
||||||
+ if crmadmin --help 2>&1 | grep -q -e "--timeout=.*in milliseconds"; then
|
|
||||||
+ crm_timeout_unit_ms=""
|
|
||||||
+ else
|
|
||||||
+ crm_timeout_unit_ms="ms"
|
|
||||||
+ fi
|
|
||||||
+}
|
|
||||||
|
|
||||||
#
|
|
||||||
# In case this is a two-node cluster (still common with
|
|
||||||
@@ -426,6 +440,7 @@ drbd_peer_fencing()
|
|
||||||
|
|
||||||
local startup_fencing stonith_enabled
|
|
||||||
check_cluster_properties
|
|
||||||
+ setup_crm_timeout_unit_ms
|
|
||||||
|
|
||||||
if [[ -z $have_constraint ]] ; then
|
|
||||||
# try to place it.
|
|
||||||
@@ -718,14 +733,17 @@ check_peer_node_reachable()
|
|
||||||
# it is obviously reachable.
|
|
||||||
#
|
|
||||||
# Do this only after we have been able to reach a DC above.
|
|
||||||
- # Note: crmadmin timeout is in milli-seconds, and defaults to 30000 (30 seconds).
|
|
||||||
+ # Note: crmadmin timeout defaults to 30 seconds.
|
|
||||||
+ #
|
|
||||||
# Our variable $cibtimeout should be in deci-seconds (see above)
|
|
||||||
# (unless you use a very old version of pacemaker, so don't do that).
|
|
||||||
# Convert deci-seconds to milli-seconds, and double it.
|
|
||||||
+ # See also setup_crm_timeout_unit_ms() above.
|
|
||||||
+ #
|
|
||||||
if [[ $crmd = "online" ]] ; then
|
|
||||||
local out
|
|
||||||
- if out=$( crmadmin -t $(( cibtimeout * 200 )) -S $DRBD_PEER ) \
|
|
||||||
- && [[ $out = *"(ok)" ]]; then
|
|
||||||
+ if out=$( crmadmin -t $(( cibtimeout * 200 ))$crm_timeout_unit_ms -S $DRBD_PEER ) \
|
|
||||||
+ && [[ $out = *@(": ok"|" (ok)") ]]; then
|
|
||||||
peer_state="reachable"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
--
|
|
||||||
2.40.0
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
From e64b8b13435f99ba21a74caeebeb996f76dfd43c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joel Colledge <joel.colledge@linbit.com>
|
||||||
|
Date: Wed, 26 Jul 2023 10:14:54 +0200
|
||||||
|
Subject: [PATCH] drbdadm,v9: do not segfault when re-configuring proxy with no
|
||||||
|
path
|
||||||
|
|
||||||
|
This prevents a segfault when a resource has a connection with no path,
|
||||||
|
and "adjust" attempts to re-configure proxy.
|
||||||
|
|
||||||
|
This could occur as follows, when drbd-proxy-ctl is not on $PATH:
|
||||||
|
* Bring resource and connection up without proxy.
|
||||||
|
* Add proxy configuration to res file.
|
||||||
|
* "drbdadm adjust <res>" - this causes the existing path to be deleted,
|
||||||
|
but no new path is created because drbd-proxy-ctl cannot be executed.
|
||||||
|
* "drbdadm adjust <res>" - segfault.
|
||||||
|
---
|
||||||
|
user/v9/drbdadm_adjust.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/user/v9/drbdadm_adjust.c b/user/v9/drbdadm_adjust.c
|
||||||
|
index 83df624c4e46..f3d321b9ec65 100644
|
||||||
|
--- a/user/v9/drbdadm_adjust.c
|
||||||
|
+++ b/user/v9/drbdadm_adjust.c
|
||||||
|
@@ -390,7 +390,7 @@ static int proxy_reconf(const struct cfg_ctx *ctx, struct connection *running_co
|
||||||
|
goto redo_whole_conn;
|
||||||
|
|
||||||
|
running_path = STAILQ_FIRST(&running_conn->paths); /* multiple paths via proxy, later! */
|
||||||
|
- if (!running_path->my_proxy)
|
||||||
|
+ if (!running_path || !running_path->my_proxy)
|
||||||
|
goto redo_whole_conn;
|
||||||
|
|
||||||
|
if (running_path->proxy_conn_is_down)
|
||||||
|
--
|
||||||
|
2.35.3
|
||||||
|
|
@ -1,90 +0,0 @@
|
|||||||
From 68d1e4242f165917bc2c787d9df0fe41251e05e6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lars Ellenberg <lars.ellenberg@linbit.com>
|
|
||||||
Date: Wed, 12 Jan 2022 13:50:35 +0100
|
|
||||||
Subject: [PATCH] crm-fence-peer: fix timeout with Pacemaker 2.0.5: milli
|
|
||||||
seconds vs seconds
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Addendum to 8a28be74bc6efa93931c957e54c01abb18b984fe
|
|
||||||
Commit message of the above cited here:
|
|
||||||
|
|
||||||
> crmadmin timeout was in milli seconds for <= 2.0.x,
|
|
||||||
> but became a TIMESPEC with default seconds in >= 2.1.
|
|
||||||
>
|
|
||||||
> Up to 2.0.4, atoi() was used, which effectively ignores "trailing garbage",
|
|
||||||
> so we could get away with always appending "ms".
|
|
||||||
> But with 2.0.5, it became g_option_context_parse G_OPTION_ARG_INT, which
|
|
||||||
> "Cannot parse integer value “200ms” for --timeout" :-|
|
|
||||||
>
|
|
||||||
> So grep the help message for "timeout.*milliseconds",
|
|
||||||
> and if not present, append an explicit "ms" unit.
|
|
||||||
|
|
||||||
And this is where I got it wrong :-(
|
|
||||||
somewhere later they re-organised the help text
|
|
||||||
so now I would need to parse --help-all.
|
|
||||||
|
|
||||||
Instead try to actually call "crmadmin -t 100ms --version".
|
|
||||||
If that works, it apparently understands (or ignores)
|
|
||||||
the "ms" unit.
|
|
||||||
---
|
|
||||||
scripts/crm-fence-peer.9.sh | 14 +++++++++++---
|
|
||||||
scripts/crm-fence-peer.sh | 14 +++++++++++---
|
|
||||||
2 files changed, 22 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/scripts/crm-fence-peer.9.sh b/scripts/crm-fence-peer.9.sh
|
|
||||||
index c943bf9f..fc8d2bc3 100755
|
|
||||||
--- a/scripts/crm-fence-peer.9.sh
|
|
||||||
+++ b/scripts/crm-fence-peer.9.sh
|
|
||||||
@@ -400,10 +400,18 @@ setup_crm_timeout_unit_ms()
|
|
||||||
# garbage", so we could get away with always appending "ms", but with
|
|
||||||
# 2.0.5, it became g_option_context_parse G_OPTION_ARG_INT, which
|
|
||||||
# "Cannot parse integer value “200ms” for --timeout" :-|
|
|
||||||
- if crmadmin --help 2>&1 | grep -q -e "--timeout=.*in milliseconds"; then
|
|
||||||
- crm_timeout_unit_ms=""
|
|
||||||
- else
|
|
||||||
+ # Can not parse the help text reliably, because they changed content
|
|
||||||
+ # and organisation of the help text between 2.0.4 and 2.0.5.
|
|
||||||
+ # Just try using ms unit, and see if it fails.
|
|
||||||
+ if crmadmin -t 100ms --version &> /dev/null; then
|
|
||||||
+ # this is either a recent version that actually understands ms
|
|
||||||
+ # as part of the TIMESPEC, or a version that still uses atoi().
|
|
||||||
crm_timeout_unit_ms="ms"
|
|
||||||
+ else
|
|
||||||
+ # this one likely failed with
|
|
||||||
+ # crmadmin: Cannot parse integer value “100ms” for -t
|
|
||||||
+ # (>= 2.0.5, < 2.1)
|
|
||||||
+ crm_timeout_unit_ms=""
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/scripts/crm-fence-peer.sh b/scripts/crm-fence-peer.sh
|
|
||||||
index 96786734..b0e4e0f1 100755
|
|
||||||
--- a/scripts/crm-fence-peer.sh
|
|
||||||
+++ b/scripts/crm-fence-peer.sh
|
|
||||||
@@ -252,10 +252,18 @@ setup_crm_timeout_unit_ms()
|
|
||||||
# garbage", so we could get away with always appending "ms", but with
|
|
||||||
# 2.0.5, it became g_option_context_parse G_OPTION_ARG_INT, which
|
|
||||||
# "Cannot parse integer value “200ms” for --timeout" :-|
|
|
||||||
- if crmadmin --help 2>&1 | grep -q -e "--timeout=.*in milliseconds"; then
|
|
||||||
- crm_timeout_unit_ms=""
|
|
||||||
- else
|
|
||||||
+ # Can not parse the help text reliably, because they changed content
|
|
||||||
+ # and organisation of the help text between 2.0.4 and 2.0.5.
|
|
||||||
+ # Just try using ms unit, and see if it fails.
|
|
||||||
+ if crmadmin -t 100ms --version &> /dev/null; then
|
|
||||||
+ # this is either a recent version that actually understands ms
|
|
||||||
+ # as part of the TIMESPEC, or a version that still uses atoi().
|
|
||||||
crm_timeout_unit_ms="ms"
|
|
||||||
+ else
|
|
||||||
+ # this one likely failed with
|
|
||||||
+ # crmadmin: Cannot parse integer value “100ms” for -t
|
|
||||||
+ # (>= 2.0.5, < 2.1)
|
|
||||||
+ crm_timeout_unit_ms=""
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.40.0
|
|
||||||
|
|
45
0002-user-drbrdmon-add-missing-stdint.h-includes.patch
Normal file
45
0002-user-drbrdmon-add-missing-stdint.h-includes.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
From feebd378195cf18b06f9fa209586af0c6d32ddb8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam James <sam@gentoo.org>
|
||||||
|
Date: Thu, 27 Jul 2023 06:30:25 +0100
|
||||||
|
Subject: [PATCH] user: drbrdmon: add missing <stdint.h> includes
|
||||||
|
|
||||||
|
GCC 13 drops some transitive includes within libstdc++.
|
||||||
|
|
||||||
|
Explicitly include <stdint.h> for uint32_t etc.
|
||||||
|
|
||||||
|
Note that using <stdint.h> deliberately because we're not using std::-prefixed
|
||||||
|
types.
|
||||||
|
|
||||||
|
Signed-off-by: Sam James <sam@gentoo.org>
|
||||||
|
---
|
||||||
|
user/drbdmon/DrbdMonConsts.h | 1 +
|
||||||
|
user/drbdmon/terminal/DisplayId.h | 1 +
|
||||||
|
2 files changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/user/drbdmon/DrbdMonConsts.h b/user/drbdmon/DrbdMonConsts.h
|
||||||
|
index 73d25f28fbeb..f962d0d38a6d 100644
|
||||||
|
--- a/user/drbdmon/DrbdMonConsts.h
|
||||||
|
+++ b/user/drbdmon/DrbdMonConsts.h
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
#ifndef DRBDMONCONSTS_H
|
||||||
|
#define DRBDMONCONSTS_H
|
||||||
|
|
||||||
|
+#include <stdint.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class DrbdMonConsts
|
||||||
|
diff --git a/user/drbdmon/terminal/DisplayId.h b/user/drbdmon/terminal/DisplayId.h
|
||||||
|
index 40d3de488fd9..fa4b744438d4 100644
|
||||||
|
--- a/user/drbdmon/terminal/DisplayId.h
|
||||||
|
+++ b/user/drbdmon/terminal/DisplayId.h
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
#ifndef DISPLAYID_H
|
||||||
|
#define DISPLAYID_H
|
||||||
|
|
||||||
|
+#include <stdint.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class DisplayId
|
||||||
|
--
|
||||||
|
2.35.3
|
||||||
|
|
1693
0003-Introduce-default_types.h-header.patch
Normal file
1693
0003-Introduce-default_types.h-header.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,64 @@
|
|||||||
|
From 6d5cb4c97031f28ae70406145aa437b3107246e6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Su Yue <glass.su@suse.com>
|
||||||
|
Date: Sun, 3 Mar 2024 16:36:54 +0800
|
||||||
|
Subject: [PATCH 1/2] crm-fence-peer.9.sh: fix parsing in_ccm crmd fields of
|
||||||
|
node_state with Pacemaker 2.1.7
|
||||||
|
|
||||||
|
If pacemaker version < 2.1.7, in_ccm of node_state is "true" or "false"
|
||||||
|
and crmd is "online" or "offline".
|
||||||
|
|
||||||
|
pacemaker 2.1.7 changed the two fields into timestamps.
|
||||||
|
For in_ccm, the value is timestamp since when node has been a cluster
|
||||||
|
member("true"). A value 0 of means the node is not a cluster member("false").
|
||||||
|
For crmd, the value is timestamp since when peer has been online in
|
||||||
|
CPG("online"). A value 0 means the peer is offline in CPG("offline").
|
||||||
|
|
||||||
|
The original code doesn't handle these fields in timestamp format.
|
||||||
|
Since there are many comprare of strings in context, converting in_ccm and crmd
|
||||||
|
from timestamps/0 to old strings is simpler and clearer.
|
||||||
|
|
||||||
|
Link: https://github.com/ClusterLabs/pacemaker/blob/Pacemaker-2.1.7/lib/pengine/unpack.c#L1581
|
||||||
|
Signed-off-by: Su Yue <glass.su@suse.com>
|
||||||
|
---
|
||||||
|
scripts/crm-fence-peer.9.sh | 25 +++++++++++++++++++++++++
|
||||||
|
1 file changed, 25 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/scripts/crm-fence-peer.9.sh b/scripts/crm-fence-peer.9.sh
|
||||||
|
index 44da6516bf3f..a3353a7354a6 100755
|
||||||
|
--- a/scripts/crm-fence-peer.9.sh
|
||||||
|
+++ b/scripts/crm-fence-peer.9.sh
|
||||||
|
@@ -888,6 +888,31 @@ guess_if_pacemaker_will_fence()
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
+ # Copied from pacemaker-2.1.7:lib/pengine/unpack.c:
|
||||||
|
+ # Since crm_feature_set 3.18.0 (pacemaker-2.1.7):
|
||||||
|
+ #
|
||||||
|
+ # - in_ccm ::= <timestamp>|0
|
||||||
|
+ # Since when node has been a cluster member. A value 0 of means the
|
||||||
|
+ # node is not a cluster member.
|
||||||
|
+ # - crmd ::= <timestamp>|0
|
||||||
|
+ # Since when peer has been online in CPG. A value 0 means the peer
|
||||||
|
+ # is offline in CPG.
|
||||||
|
+ if [[ $in_ccm =~ ^[0-9]+$ ]]; then
|
||||||
|
+ if [[ $in_ccm = "0" ]]; then
|
||||||
|
+ in_ccm="false"
|
||||||
|
+ else
|
||||||
|
+ in_ccm="true"
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [[ $crmd =~ ^[0-9]+$ ]]; then
|
||||||
|
+ if [[ $crmd = "0" ]]; then
|
||||||
|
+ crmd="offline"
|
||||||
|
+ else
|
||||||
|
+ crmd="online"
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
# if it is not enabled, no point in waiting for it.
|
||||||
|
if ! $stonith_enabled ; then
|
||||||
|
# "normalize" the rest of the logic
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
From 922e6702cb7a089102f4843b2994ef0749c41573 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Su Yue <glass.su@suse.com>
|
||||||
|
Date: Sun, 3 Mar 2024 16:56:38 +0800
|
||||||
|
Subject: [PATCH 2/2] crm-fence-peer.9.sh: use join of node_state to judge
|
||||||
|
whether node is banned
|
||||||
|
|
||||||
|
crmd in node_state can't be "banned". join should be used instead
|
||||||
|
of crmd.
|
||||||
|
|
||||||
|
Signed-off-by: Su Yue <glass.su@suse.com>
|
||||||
|
---
|
||||||
|
scripts/crm-fence-peer.9.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/crm-fence-peer.9.sh b/scripts/crm-fence-peer.9.sh
|
||||||
|
index a3353a7354a6..b326a1656c15 100755
|
||||||
|
--- a/scripts/crm-fence-peer.9.sh
|
||||||
|
+++ b/scripts/crm-fence-peer.9.sh
|
||||||
|
@@ -934,7 +934,7 @@ guess_if_pacemaker_will_fence()
|
||||||
|
|
||||||
|
# for further inspiration, see pacemaker:lib/pengine/unpack.c, determine_online_status_fencing()
|
||||||
|
[[ -z $in_ccm ]] && will_fence=true
|
||||||
|
- [[ $crmd = "banned" ]] && will_fence=true
|
||||||
|
+ [[ $join = "banned" ]] && will_fence=true
|
||||||
|
if [[ ${expected-down} = "down" && $in_ccm = "false" && $crmd != "online" ]]; then
|
||||||
|
: "pacemaker considers this as clean down"
|
||||||
|
elif [[ $in_ccm = false ]] || [[ $crmd != "online" ]]; then
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
BIN
drbd-utils-9.19.0.tar.gz
(Stored with Git LFS)
BIN
drbd-utils-9.19.0.tar.gz
(Stored with Git LFS)
Binary file not shown.
BIN
drbd-utils-9.25.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
drbd-utils-9.25.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,3 +1,87 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 18 11:21:52 UTC 2024 - Glass Su <glass.su@suse.com>
|
||||||
|
|
||||||
|
- drbd failover timeout because of "fence-peer helper broken" (bsc#1219263)
|
||||||
|
* bsc-1219263_crm-fence-peer.9.sh-fix-parsing-in_ccm-crmd-fields-o.patch
|
||||||
|
* bsc-1219263_crm-fence-peer.9.sh-use-join-of-node_state-to-judge-.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 26 07:51:12 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- Use %autosetup macro. Allows to eliminate the usage of deprecated
|
||||||
|
PatchN.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 28 12:40:00 UTC 2023 - Heming Zhao <heming.zhao@suse.com>
|
||||||
|
|
||||||
|
- Update to 9.25.0 (jsc#PED-6362)
|
||||||
|
* drbdsetup,v9,show: fix meta disk format for json
|
||||||
|
* drbdmeta: {hex,}dump superblock
|
||||||
|
* drbdmon: major rewrite
|
||||||
|
* build: gcc v12 cleanups
|
||||||
|
* misc: put locks into separate dir
|
||||||
|
* selinux: add fowner fsetsid, they dropped a global noaudit rule
|
||||||
|
* v9: Support user-defined block-size
|
||||||
|
* doc,v9: improvements all over the place
|
||||||
|
* drbdadm,v9: implement drbdadm role <res:peer>
|
||||||
|
* drbdadm,v9: pass --verbose/--statistics to drbdsetup status
|
||||||
|
* drbd{adm,meta}: add repair-md subcommand
|
||||||
|
* drbdadm,v9,resync-after: fix too strict check
|
||||||
|
* drbdadm,v9,floating: fixup fake uname for 9.2.x strict_names=1
|
||||||
|
* drbdadm,v9,parser: fixup globs, also rm GNU libc specific extensions
|
||||||
|
* drbdadm,v9,parser: allow via outside-address for NATed peers
|
||||||
|
* parser,v9: deprecate named connections
|
||||||
|
* drbd-selinux: add sub package, minor packaging/spec changes
|
||||||
|
* drbdadm: allow files from expanded glob to vanish
|
||||||
|
* drbdadm,v9: fix potential segfault in postparse
|
||||||
|
* drbdadm,v9: fix sh-ip when set on connection/path
|
||||||
|
* drbdmeta: fix apply-al for bitmap sizes > 4GiB
|
||||||
|
* drbd-service-shim.sh: add secondary --force
|
||||||
|
* ocf: fix for dropped --peer option
|
||||||
|
* drbdsetup,v9: show susupend reason in json output
|
||||||
|
* drbdsetup,v9: add secondary --force
|
||||||
|
* drbdsetup,v9: fix *susp_str() for events2 diff mode
|
||||||
|
* drdbdadm,v9: fix sh-resource
|
||||||
|
* drdbdadm,v9: rm --peer=connect_to_host
|
||||||
|
* ocf: deal with situation where PM node name and actual node name do not
|
||||||
|
match
|
||||||
|
* notify.sh: deal with unset DRBD_PEER env variable
|
||||||
|
* crm-fence-peer: fix timeout with Pacemaker 2.0.5
|
||||||
|
* drbdmeta: don't wait for confirmation if not a TTY
|
||||||
|
* drbdadm,v9: Pass '--force' to certain drbdmeta commands
|
||||||
|
* drbdmeta: do init in chunks; allow different methods
|
||||||
|
* build: various minor fixes (udev detection, POSIX,
|
||||||
|
compiler flags, allow doc building with asciidoctor,...)
|
||||||
|
* drbd.ocf: fix type (relevant for certain pcs versions)
|
||||||
|
* crm-fence-peer: fix timeout with Pacemaker 2.1
|
||||||
|
* v9,proxy: allow multiple sharing a proxy node
|
||||||
|
* v9,drbdsetup: quote resource name in "show"
|
||||||
|
* build: allow building for RHEL9.0, minor cleanups
|
||||||
|
* reactor/systemd: allow proper actions (e.g., reboot) if
|
||||||
|
demotion fails.
|
||||||
|
|
||||||
|
- introduce new systemd service:
|
||||||
|
drbd-demote-or-escalate@.service
|
||||||
|
|
||||||
|
- remove v83 v84 binaries (incompatible with kmp)
|
||||||
|
|
||||||
|
- drop patches which are already included in latest code:
|
||||||
|
- 0001-crm-fence-peer-fix-timeout-with-Pacemaker-2.1-milli-.patch
|
||||||
|
- 0002-crm-fence-peer-fix-timeout-with-Pacemaker-2.0.5-mill.patch
|
||||||
|
|
||||||
|
- add upstream patch:
|
||||||
|
+ 0001-drbdadm-v9-do-not-segfault-when-re-configuring-proxy.patch
|
||||||
|
+ 0002-user-drbrdmon-add-missing-stdint.h-includes.patch
|
||||||
|
+ 0003-Introduce-default_types.h-header.patch
|
||||||
|
|
||||||
|
- change patch name:
|
||||||
|
- 0001-Disable-quorum-in-default-configuration-bsc-1032142.patch
|
||||||
|
+ bsc-1032142_Disable-quorum-in-default-configuration.patch
|
||||||
|
|
||||||
|
- rebase patch:
|
||||||
|
+ pie-fix.patch
|
||||||
|
+ rpmlint-build-error.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed May 31 12:34:42 UTC 2023 - Frederic Crozat <fcrozat@suse.com>
|
Wed May 31 12:34:42 UTC 2023 - Frederic Crozat <fcrozat@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package drbd-utils
|
# spec file for package drbd-utils
|
||||||
#
|
#
|
||||||
# Copyright (c) 2023 SUSE LLC
|
# Copyright (c) 2024 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -16,7 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define services drbd.service drbd-lvchange@.service drbd-promote@.service drbd-reconfigure-suspend-or-error@.service drbd-services@.target drbd-wait-promotable@.service drbd@.service drbd@.target ocf.ra@.service
|
%define services drbd.service drbd-lvchange@.service drbd-promote@.service drbd-demote-or-escalate@.service drbd-reconfigure-suspend-or-error@.service drbd-services@.target drbd-wait-promotable@.service drbd@.service drbd@.target ocf.ra@.service
|
||||||
%if 0%{?suse_version} < 1550
|
%if 0%{?suse_version} < 1550
|
||||||
# for SLEs
|
# for SLEs
|
||||||
%define sbindir /sbin
|
%define sbindir /sbin
|
||||||
@ -32,26 +32,32 @@
|
|||||||
# Only need po4a to build man from git source code
|
# Only need po4a to build man from git source code
|
||||||
%bcond_without prebuiltman
|
%bcond_without prebuiltman
|
||||||
Name: drbd-utils
|
Name: drbd-utils
|
||||||
Version: 9.19.0
|
Version: 9.25.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Distributed Replicated Block Device
|
Summary: Distributed Replicated Block Device
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: Productivity/Clustering/HA
|
Group: Productivity/Clustering/HA
|
||||||
URL: https://linbit.com/linbit-software-download-page-for-linstor-and-drbd-linux-driver/
|
URL: https://linbit.com/linbit-software-download-page-for-linstor-and-drbd-linux-driver/
|
||||||
# tarball might be available at https://pkg.linbit.com/downloads/drbd/utils/drbd-utils-%{name}.tar.gz
|
Source: https://pkg.linbit.com//downloads/drbd/utils/%{name}-%{version}.tar.gz
|
||||||
Source: %{name}-%{version}.tar.gz
|
|
||||||
Source100: %{name}.rpmlintrc
|
Source100: %{name}.rpmlintrc
|
||||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
|
||||||
Patch1: init-script-fixes.diff
|
#############################################
|
||||||
Patch2: usrmerge_move_lib_to_prefix_lib.patch
|
# Upstream patches
|
||||||
Patch3: fence-after-pacemaker-down.patch
|
Patch0001: 0001-drbdadm-v9-do-not-segfault-when-re-configuring-proxy.patch
|
||||||
# PATCH-SUSE-FIX: Disable quorum in default configuration (bsc#1032142)
|
Patch0002: 0002-user-drbrdmon-add-missing-stdint.h-includes.patch
|
||||||
Patch4: 0001-Disable-quorum-in-default-configuration-bsc-1032142.patch
|
Patch0003: 0003-Introduce-default_types.h-header.patch
|
||||||
Patch5: move_fencing_from_disk_to_net_in_example.patch
|
|
||||||
Patch6: pie-fix.patch
|
# SUSE specific patches
|
||||||
Patch7: 0001-crm-fence-peer-fix-timeout-with-Pacemaker-2.1-milli-.patch
|
Patch1001: init-script-fixes.diff
|
||||||
Patch8: 0002-crm-fence-peer-fix-timeout-with-Pacemaker-2.0.5-mill.patch
|
Patch1002: usrmerge_move_lib_to_prefix_lib.patch
|
||||||
Patch99: rpmlint-build-error.patch
|
Patch1003: fence-after-pacemaker-down.patch
|
||||||
|
Patch1004: bsc-1032142_Disable-quorum-in-default-configuration.patch
|
||||||
|
Patch1005: move_fencing_from_disk_to_net_in_example.patch
|
||||||
|
Patch1006: pie-fix.patch
|
||||||
|
Patch1007: bsc-1219263_crm-fence-peer.9.sh-fix-parsing-in_ccm-crmd-fields-o.patch
|
||||||
|
Patch1008: bsc-1219263_crm-fence-peer.9.sh-use-join-of-node_state-to-judge-.patch
|
||||||
|
Patch1099: rpmlint-build-error.patch
|
||||||
|
#############################################
|
||||||
|
|
||||||
Provides: drbd-bash-completion = %{version}
|
Provides: drbd-bash-completion = %{version}
|
||||||
Provides: drbd-pacemaker = %{version}
|
Provides: drbd-pacemaker = %{version}
|
||||||
@ -59,7 +65,7 @@ Provides: drbd-udev = %{version}
|
|||||||
Obsoletes: drbd-bash-completion < %{version}
|
Obsoletes: drbd-bash-completion < %{version}
|
||||||
Obsoletes: drbd-pacemaker < %{version}
|
Obsoletes: drbd-pacemaker < %{version}
|
||||||
Obsoletes: drbd-udev < %{version}
|
Obsoletes: drbd-udev < %{version}
|
||||||
# drbd-utils first splict from drbd-8.4.5(only driver)
|
# drbd-utils first split from drbd-8.4.5(only driver)
|
||||||
# and suse let drbd driver goes in-kernel
|
# and suse let drbd driver goes in-kernel
|
||||||
# Provides: drbd = 8.4.5
|
# Provides: drbd = 8.4.5
|
||||||
# Obsoletes: drbd < 8.4.5
|
# Obsoletes: drbd < 8.4.5
|
||||||
@ -95,16 +101,7 @@ device over the network to another machine. Think of it as networked
|
|||||||
raid 1. It is a building block for setting up clusters.
|
raid 1. It is a building block for setting up clusters.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%autosetup -p1
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
%patch7 -p1
|
|
||||||
%patch8 -p1
|
|
||||||
%patch99 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export WANT_DRBD_REPRODUCIBLE_BUILD=1
|
export WANT_DRBD_REPRODUCIBLE_BUILD=1
|
||||||
@ -133,7 +130,9 @@ PATH=/sbin:$PATH ./configure \
|
|||||||
--exec_prefix=%{_prefix}/lib \
|
--exec_prefix=%{_prefix}/lib \
|
||||||
%{?with_drbdmon: --with-drbdmon} \
|
%{?with_drbdmon: --with-drbdmon} \
|
||||||
%{?with_prebuiltman: --with-prebuiltman} \
|
%{?with_prebuiltman: --with-prebuiltman} \
|
||||||
--with-tmpfilesdir=%{_tmpfilesdir}
|
--with-tmpfilesdir=%{_tmpfilesdir} \
|
||||||
|
--without-83support \
|
||||||
|
--without-84support
|
||||||
|
|
||||||
%make_build OPTFLAGS="%{optflags}"
|
%make_build OPTFLAGS="%{optflags}"
|
||||||
|
|
||||||
@ -225,6 +224,7 @@ fi
|
|||||||
%{_unitdir}/drbd.service
|
%{_unitdir}/drbd.service
|
||||||
%{_unitdir}/drbd-lvchange@.service
|
%{_unitdir}/drbd-lvchange@.service
|
||||||
%{_unitdir}/drbd-promote@.service
|
%{_unitdir}/drbd-promote@.service
|
||||||
|
%{_unitdir}/drbd-demote-or-escalate@.service
|
||||||
%{_unitdir}/drbd-reconfigure-suspend-or-error@.service
|
%{_unitdir}/drbd-reconfigure-suspend-or-error@.service
|
||||||
%{_unitdir}/drbd-services@.target
|
%{_unitdir}/drbd-services@.target
|
||||||
%{_unitdir}/drbd-wait-promotable@.service
|
%{_unitdir}/drbd-wait-promotable@.service
|
||||||
|
@ -3,7 +3,7 @@ Index: drbd-utils-9.14.0/user/drbdmon/Makefile.in
|
|||||||
--- drbd-utils-9.14.0.orig/user/drbdmon/Makefile.in
|
--- drbd-utils-9.14.0.orig/user/drbdmon/Makefile.in
|
||||||
+++ drbd-utils-9.14.0/user/drbdmon/Makefile.in
|
+++ drbd-utils-9.14.0/user/drbdmon/Makefile.in
|
||||||
@@ -1,6 +1,7 @@
|
@@ -1,6 +1,7 @@
|
||||||
CXXFLAGS=-std=c++11 -I. -I../shared -Icppdsaext/src -Wall -Werror --pedantic-errors -fPIC -O2 \
|
CXXFLAGS=-std=c++11 -I. -I../shared -Icppdsaext/src -Wall -Werror -pedantic-errors -fPIC -O2 \
|
||||||
-Wsign-compare -Wpointer-arith -Wswitch-default -Wswitch-enum -Wtype-limits \
|
-Wsign-compare -Wpointer-arith -Wswitch-default -Wswitch-enum -Wtype-limits \
|
||||||
--Wmissing-declarations -Wshadow
|
--Wmissing-declarations -Wshadow
|
||||||
+-Wmissing-declarations -Wshadow \
|
+-Wmissing-declarations -Wshadow \
|
||||||
|
@ -45,25 +45,3 @@ diff -Naur drbd-utils-9.19.0.orig/scripts/Makefile.in drbd-utils-9.19.0/scripts/
|
|||||||
! test -L $(DESTDIR)/sbin/rcdrbd || rm $(DESTDIR)/sbin/rcdrbd
|
! test -L $(DESTDIR)/sbin/rcdrbd || rm $(DESTDIR)/sbin/rcdrbd
|
||||||
|
|
||||||
.PHONY: install uninstall clean distclean
|
.PHONY: install uninstall clean distclean
|
||||||
diff -Naur drbd-utils-9.19.0.orig/user/v84/Makefile.in drbd-utils-9.19.0/user/v84/Makefile.in
|
|
||||||
--- drbd-utils-9.19.0.orig/user/v84/Makefile.in 2021-10-11 18:44:02.918467657 +0800
|
|
||||||
+++ drbd-utils-9.19.0/user/v84/Makefile.in 2021-10-13 11:39:05.662316197 +0800
|
|
||||||
@@ -108,7 +108,6 @@
|
|
||||||
install:
|
|
||||||
ifeq ($(WITH_84_SUPPORT),yes)
|
|
||||||
install -d $(DESTDIR)$(localstatedir)/lib/drbd
|
|
||||||
- install -d $(DESTDIR)$(localstatedir)/run/drbd
|
|
||||||
install -d $(DESTDIR)$(localstatedir)/lock
|
|
||||||
install -d $(DESTDIR)/lib/drbd/
|
|
||||||
if getent group haclient > /dev/null 2> /dev/null ; then \
|
|
||||||
diff -Naur drbd-utils-9.19.0.orig/user/v9/Makefile.in drbd-utils-9.19.0/user/v9/Makefile.in
|
|
||||||
--- drbd-utils-9.19.0.orig/user/v9/Makefile.in 2021-10-11 18:44:02.918467657 +0800
|
|
||||||
+++ drbd-utils-9.19.0/user/v9/Makefile.in 2021-10-13 11:38:48.462390954 +0800
|
|
||||||
@@ -143,7 +143,6 @@
|
|
||||||
install:
|
|
||||||
install -d $(DESTDIR)$(sbindir)
|
|
||||||
install -d $(DESTDIR)$(localstatedir)/lib/drbd
|
|
||||||
- install -d $(DESTDIR)$(localstatedir)/run/drbd
|
|
||||||
install -d $(DESTDIR)$(localstatedir)/lock
|
|
||||||
if getent group haclient > /dev/null 2> /dev/null ; then \
|
|
||||||
install -g haclient -m 4750 drbdsetup $(DESTDIR)$(sbindir) ; \
|
|
||||||
|
Loading…
Reference in New Issue
Block a user