Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/sbd.git#9e025add0e5723c56330d02576ccaa9df61c85ee
This commit is contained in:
parent
617aa86e69
commit
47ddf28608
@ -1,82 +0,0 @@
|
|||||||
From 1d2a7b8d059d4f090b351b8decca0ddf274c82a0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Klaus Wenninger <klaus.wenninger@aon.at>
|
|
||||||
Date: Wed, 20 Nov 2019 15:20:19 +0100
|
|
||||||
Subject: [PATCH] Fix: regressions.sh: make parameter passing consistent
|
|
||||||
|
|
||||||
---
|
|
||||||
tests/regressions.sh | 24 ++++++++++++------------
|
|
||||||
1 file changed, 12 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/regressions.sh b/tests/regressions.sh
|
|
||||||
index 6cfb303..7ab80be 100755
|
|
||||||
--- a/tests/regressions.sh
|
|
||||||
+++ b/tests/regressions.sh
|
|
||||||
@@ -32,7 +32,7 @@
|
|
||||||
: ${SBD_USE_DM:="yes"}
|
|
||||||
|
|
||||||
sbd() {
|
|
||||||
- LD_PRELOAD=${SBD_PRELOAD} SBD_WATCHDOG_TIMEOUT=5 SBD_DEVICE="${SBD_DEVICE}" SBD_PRELOAD_LOG=${SBD_PRELOAD_LOG} SBD_WATCHDOG_DEV=/dev/watchdog setsid ${SBD_BINARY} -p ${SBD_PIDFILE} $*
|
|
||||||
+ LD_PRELOAD=${SBD_PRELOAD} SBD_WATCHDOG_TIMEOUT=5 SBD_DEVICE="${SBD_DEVICE}" SBD_PRELOAD_LOG=${SBD_PRELOAD_LOG} SBD_WATCHDOG_DEV=/dev/watchdog setsid ${SBD_BINARY} -p ${SBD_PIDFILE} "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
sbd_wipe_disk() {
|
|
||||||
@@ -98,26 +98,26 @@ sbd_daemon_cleanup() {
|
|
||||||
pkill -TERM --pidfile ${SBD_PIDFILE} 2>/dev/null
|
|
||||||
sleep 5
|
|
||||||
pkill -KILL --pidfile ${SBD_PIDFILE} 2>/dev/null
|
|
||||||
- pkill -KILL --parent $(cat ${SBD_PIDFILE} 2>/dev/null) 2>/dev/null
|
|
||||||
+ pkill -KILL --parent "$(cat ${SBD_PIDFILE} 2>/dev/null)" 2>/dev/null
|
|
||||||
echo > ${SBD_PIDFILE}
|
|
||||||
}
|
|
||||||
|
|
||||||
_ok() {
|
|
||||||
- echo -- $@
|
|
||||||
- $@
|
|
||||||
+ echo "-- $*"
|
|
||||||
+ "$@"
|
|
||||||
rc=$?
|
|
||||||
if [ $rc -ne 0 ]; then
|
|
||||||
- echo "$@ failed with $rc"
|
|
||||||
+ echo "$* failed with $rc"
|
|
||||||
exit $rc
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_no() {
|
|
||||||
- echo -- $@
|
|
||||||
- $@
|
|
||||||
+ echo "-- $*"
|
|
||||||
+ "$@"
|
|
||||||
rc=$?
|
|
||||||
if [ $rc -eq 0 ]; then
|
|
||||||
- echo "$@ did NOT fail ($rc)"
|
|
||||||
+ echo "$* did NOT fail ($rc)"
|
|
||||||
exit $rc
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
@@ -126,7 +126,7 @@ _no() {
|
|
||||||
_in_log() {
|
|
||||||
grep "$@" ${SBD_PRELOAD_LOG} >/dev/null
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
- echo "didn't find '$@' in log:"
|
|
||||||
+ echo "didn't find '$*' in log:"
|
|
||||||
cat ${SBD_PRELOAD_LOG}
|
|
||||||
sbd_daemon_cleanup
|
|
||||||
exit 1
|
|
||||||
@@ -227,10 +227,10 @@ test_stall_inquisitor() {
|
|
||||||
sbd_daemon_cleanup
|
|
||||||
sbd -d ${D[1]} -d ${D[2]} -d ${D[3]} -n test-1 watch
|
|
||||||
sleep 10
|
|
||||||
- _ok kill -0 $(cat ${SBD_PIDFILE})
|
|
||||||
- kill -STOP $(cat ${SBD_PIDFILE})
|
|
||||||
+ _ok kill -0 "$(cat ${SBD_PIDFILE})"
|
|
||||||
+ kill -STOP "$(cat ${SBD_PIDFILE})"
|
|
||||||
sleep 10
|
|
||||||
- kill -CONT $(cat ${SBD_PIDFILE}) 2>/dev/null
|
|
||||||
+ kill -CONT "$(cat ${SBD_PIDFILE})" 2>/dev/null
|
|
||||||
_in_log "watchdog fired"
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,152 +0,0 @@
|
|||||||
From 4bc08cf76fc01e98cbec76bf32bb333b77f69217 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Klaus Wenninger <klaus.wenninger@aon.at>
|
|
||||||
Date: Thu, 27 Feb 2020 19:02:57 +0100
|
|
||||||
Subject: [PATCH] Fix: scheduling: overhaul the whole thing
|
|
||||||
|
|
||||||
- prevent possible lockup when format in proc changes
|
|
||||||
- properly get and handle scheduler policy & prio
|
|
||||||
- on SCHED_RR failing push to the max with SCHED_OTHER
|
|
||||||
---
|
|
||||||
src/sbd-common.c | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
|
|
||||||
1 file changed, 44 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/sbd-common.c b/src/sbd-common.c
|
|
||||||
index 9ec43b2..c2da758 100644
|
|
||||||
--- a/src/sbd-common.c
|
|
||||||
+++ b/src/sbd-common.c
|
|
||||||
@@ -26,6 +26,9 @@
|
|
||||||
#include <pwd.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
+#include <sys/time.h>
|
|
||||||
+#include <sys/resource.h>
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
#ifdef _POSIX_MEMLOCK
|
|
||||||
# include <sys/mman.h>
|
|
||||||
@@ -298,7 +301,7 @@ watchdog_populate_list(void)
|
|
||||||
FILE *file;
|
|
||||||
|
|
||||||
snprintf(entry_name, sizeof(entry_name),
|
|
||||||
- SYS_CLASS_WATCHDOG "/%s/dev", entry->d_name);
|
|
||||||
+ SYS_CLASS_WATCHDOG "/%s/dev", entry->d_name);
|
|
||||||
file = fopen(entry_name, "r");
|
|
||||||
if (file) {
|
|
||||||
int major, minor;
|
|
||||||
@@ -667,7 +670,7 @@ static int get_realtime_budget(void)
|
|
||||||
{
|
|
||||||
FILE *f;
|
|
||||||
char fname[PATH_MAX];
|
|
||||||
- int res = -1, lnum = 0;
|
|
||||||
+ int res = -1, lnum = 0, num;
|
|
||||||
char *cgroup = NULL, *namespecs = NULL;
|
|
||||||
|
|
||||||
snprintf(fname, PATH_MAX, "/proc/%jd/cgroup", (intmax_t)getpid());
|
|
||||||
@@ -677,7 +680,8 @@ static int get_realtime_budget(void)
|
|
||||||
(intmax_t)getpid());
|
|
||||||
goto exit_res;
|
|
||||||
}
|
|
||||||
- while( fscanf(f, "%d:%m[^:]:%m[^\n]", &lnum, &namespecs, &cgroup) !=EOF ) {
|
|
||||||
+ while( (num = fscanf(f, "%d:%m[^:]:%m[^\n]\n", &lnum,
|
|
||||||
+ &namespecs, &cgroup)) !=EOF ) {
|
|
||||||
if (namespecs && strstr(namespecs, "cpuacct")) {
|
|
||||||
free(namespecs);
|
|
||||||
break;
|
|
||||||
@@ -690,6 +694,11 @@ static int get_realtime_budget(void)
|
|
||||||
free(namespecs);
|
|
||||||
namespecs = NULL;
|
|
||||||
}
|
|
||||||
+ /* not to get stuck if format changes */
|
|
||||||
+ if ((num < 3) && ((fscanf(f, "%*[^\n]") == EOF) ||
|
|
||||||
+ (fscanf(f, "\n") == EOF))) {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
if (cgroup == NULL) {
|
|
||||||
@@ -776,15 +785,17 @@ sbd_make_realtime(int priority, int stackgrowK, int heapgrowK)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+do {
|
|
||||||
#ifdef SCHED_RR
|
|
||||||
if (move_to_root_cgroup) {
|
|
||||||
sbd_move_to_root_cgroup(enforce_moving_to_root_cgroup);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
- int pcurrent = 0;
|
|
||||||
int pmin = sched_get_priority_min(SCHED_RR);
|
|
||||||
int pmax = sched_get_priority_max(SCHED_RR);
|
|
||||||
+ struct sched_param sp;
|
|
||||||
+ int pcurrent;
|
|
||||||
|
|
||||||
if (priority == 0) {
|
|
||||||
priority = pmax;
|
|
||||||
@@ -794,26 +805,47 @@ sbd_make_realtime(int priority, int stackgrowK, int heapgrowK)
|
|
||||||
priority = pmax;
|
|
||||||
}
|
|
||||||
|
|
||||||
- pcurrent = sched_getscheduler(0);
|
|
||||||
- if (pcurrent < 0) {
|
|
||||||
+ if (sched_getparam(0, &sp) < 0) {
|
|
||||||
cl_perror("Unable to get scheduler priority");
|
|
||||||
|
|
||||||
- } else if(pcurrent < priority) {
|
|
||||||
- struct sched_param sp;
|
|
||||||
+ } else if ((pcurrent = sched_getscheduler(0)) < 0) {
|
|
||||||
+ cl_perror("Unable to get scheduler policy");
|
|
||||||
|
|
||||||
+ } else if ((pcurrent == SCHED_RR) &&
|
|
||||||
+ (sp.sched_priority >= priority)) {
|
|
||||||
+ cl_log(LOG_INFO,
|
|
||||||
+ "Stay with priority (%d) for policy SCHED_RR",
|
|
||||||
+ sp.sched_priority);
|
|
||||||
+ break;
|
|
||||||
+ } else {
|
|
||||||
memset(&sp, 0, sizeof(sp));
|
|
||||||
sp.sched_priority = priority;
|
|
||||||
|
|
||||||
if (sched_setscheduler(0, SCHED_RR, &sp) < 0) {
|
|
||||||
- cl_perror("Unable to set scheduler priority to %d", priority);
|
|
||||||
+ cl_perror(
|
|
||||||
+ "Unable to set scheduler policy to SCHED_RR priority %d",
|
|
||||||
+ priority);
|
|
||||||
} else {
|
|
||||||
- cl_log(LOG_INFO, "Scheduler priority is now %d", priority);
|
|
||||||
+ cl_log(LOG_INFO,
|
|
||||||
+ "Scheduler policy is now SCHED_RR priority %d",
|
|
||||||
+ priority);
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
- cl_log(LOG_ERR, "System does not support updating the scheduler priority");
|
|
||||||
+ cl_log(LOG_ERR, "System does not support updating the scheduler policy");
|
|
||||||
+#endif
|
|
||||||
+#ifdef PRIO_PGRP
|
|
||||||
+ if (setpriority(PRIO_PGRP, 0, INT_MIN) < 0) {
|
|
||||||
+ cl_perror("Unable to raise the scheduler priority");
|
|
||||||
+ } else {
|
|
||||||
+ cl_log(LOG_INFO, "Scheduler priority raised to the maximum");
|
|
||||||
+ }
|
|
||||||
+#else
|
|
||||||
+ cl_perror("System does not support setting the scheduler priority");
|
|
||||||
#endif
|
|
||||||
+} while (0);
|
|
||||||
|
|
||||||
sbd_memlock(heapgrowK, stackgrowK);
|
|
||||||
}
|
|
||||||
@@ -826,7 +858,7 @@ maximize_priority(void)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- sbd_make_realtime(0, 256, 256);
|
|
||||||
+ sbd_make_realtime(0, 256, 256);
|
|
||||||
|
|
||||||
if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(),
|
|
||||||
IOPRIO_PRIO_VALUE(IOPRIO_CLASS_RT, 1)) != 0) {
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -4,6 +4,11 @@ product_versions:
|
|||||||
decision_context: bodhi_update_push_testing
|
decision_context: bodhi_update_push_testing
|
||||||
subject_type: koji_build
|
subject_type: koji_build
|
||||||
rules:
|
rules:
|
||||||
- !PassingTestCaseRule {test_case_name: dist.depcheck}
|
|
||||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- fedora-*
|
||||||
|
decision_context: bodhi_update_push_stable
|
||||||
|
subject_type: koji_build
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||||
|
51
sbd.spec
51
sbd.spec
@ -15,21 +15,28 @@
|
|||||||
|
|
||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
%global commit 25fce8a7d5e8cd5abc2379077381b10bd6cec183
|
%global longcommit 044643922c3044c0bac2f91b1382ff3f2c64a4a2
|
||||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
%global shortcommit %(echo %{longcommit}|cut -c1-8)
|
||||||
%global github_owner Clusterlabs
|
%global github_owner Clusterlabs
|
||||||
%global buildnum 7
|
%global buildnum 3
|
||||||
|
|
||||||
|
%ifarch s390x s390
|
||||||
|
# minimum timeout on LPAR diag288 watchdog is 15s
|
||||||
|
%global watchdog_timeout_default 15
|
||||||
|
%else
|
||||||
|
%global watchdog_timeout_default 5
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%global sync_resource_startup_default no
|
||||||
|
%global sync_resource_startup_sysconfig yes
|
||||||
|
|
||||||
Name: sbd
|
Name: sbd
|
||||||
Summary: Storage-based death
|
Summary: Storage-based death
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Version: 1.4.1
|
Version: 1.4.2
|
||||||
Release: %{buildnum}%{?dist}.1
|
Release: %{buildnum}%{?dist}
|
||||||
Url: https://github.com/%{github_owner}/%{name}
|
Url: https://github.com/%{github_owner}/%{name}
|
||||||
Source0: https://github.com/%{github_owner}/%{name}/archive/%{commit}/%{name}-%{commit}.tar.gz
|
Source0: https://github.com/%{github_owner}/%{name}/archive/%{longcommit}/%{name}-%{longcommit}.tar.gz
|
||||||
Patch0: 0001-Fix-regressions.sh-make-parameter-passing-consistent.patch
|
|
||||||
Patch1: 0002-Doc-add-environment-section-to-man-page.patch
|
|
||||||
Patch2: 0003-Fix-scheduling-overhaul-the-whole-thing.patch
|
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: libuuid-devel
|
BuildRequires: libuuid-devel
|
||||||
@ -44,6 +51,7 @@ BuildRequires: pkgconfig
|
|||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd
|
||||||
Conflicts: fence-agents-sbd < 4.5.0
|
Conflicts: fence-agents-sbd < 4.5.0
|
||||||
|
Conflicts: pacemaker-libs < 2.0.5-10
|
||||||
|
|
||||||
%if 0%{?rhel}
|
%if 0%{?rhel}
|
||||||
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
|
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
|
||||||
@ -68,18 +76,16 @@ regression-testing sbd.
|
|||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n %{name}-%{commit} -p1
|
%autosetup -n %{name}-%{longcommit} -p1
|
||||||
%ifarch s390x s390
|
|
||||||
sed -i src/sbd.sysconfig -e "s/Default: 5/Default: 15/"
|
|
||||||
sed -i src/sbd.sysconfig -e "s/SBD_WATCHDOG_TIMEOUT=5/SBD_WATCHDOG_TIMEOUT=15/"
|
|
||||||
%endif
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
%build
|
%build
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
export CFLAGS="$RPM_OPT_FLAGS -Wall -Werror"
|
export CFLAGS="$RPM_OPT_FLAGS -Wall -Werror"
|
||||||
%configure
|
%configure --with-watchdog-timeout-default=%{watchdog_timeout_default} \
|
||||||
|
--with-sync-resource-startup-default=%{sync_resource_startup_default} \
|
||||||
|
--with-sync-resource-startup-sysconfig=%{sync_resource_startup_sysconfig}
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
@ -133,6 +139,8 @@ fi
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%config(noreplace) %{_sysconfdir}/sysconfig/sbd
|
%config(noreplace) %{_sysconfdir}/sysconfig/sbd
|
||||||
%{_sbindir}/sbd
|
%{_sbindir}/sbd
|
||||||
|
%{_datadir}/sbd
|
||||||
|
%{_datadir}/pkgconfig/sbd.pc
|
||||||
%exclude %{_datadir}/sbd/regressions.sh
|
%exclude %{_datadir}/sbd/regressions.sh
|
||||||
%doc %{_mandir}/man8/sbd*
|
%doc %{_mandir}/man8/sbd*
|
||||||
%if %{defined _unitdir}
|
%if %{defined _unitdir}
|
||||||
@ -149,6 +157,19 @@ fi
|
|||||||
%{_libdir}/libsbdtestbed*
|
%{_libdir}/libsbdtestbed*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Dec 7 2020 Klaus Wenninger <kwenning@redhat.com> - 1.4.2-3
|
||||||
|
- this time really remove dist.depcheck from gating
|
||||||
|
|
||||||
|
* Mon Dec 7 2020 Klaus Wenninger <kwenning@redhat.com> - 1.4.2-2
|
||||||
|
- remove deprecated dist.depcheck from gating
|
||||||
|
- add tier0 to push_stable to have rawhide gated as well
|
||||||
|
|
||||||
|
* Mon Dec 7 2020 Klaus Wenninger <kwenning@redhat.com> - 1.4.2-1
|
||||||
|
- Rebase to upstream v1.4.2
|
||||||
|
- Conflict with pacemaker that doesn't have pacemakerd-api
|
||||||
|
- Set default to not do startup/shutdown-syncing via pacemakerd-api
|
||||||
|
but enable in template-config
|
||||||
|
|
||||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.1-7.1
|
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.1-7.1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (sbd-25fce8a7d5e8cd5abc2379077381b10bd6cec183.tar.gz) = 3b89ee0aa88282f17c8daf725a1e7a8c2f2affdcf6ff6f4ca4faf250760d778a65c5693e5df3fcc7554d60dd9b0cb1a0350e266fadb7668320f3c676d8799a29
|
SHA512 (sbd-044643922c3044c0bac2f91b1382ff3f2c64a4a2.tar.gz) = de8b4c06b6382a56102af85b7b9f295ccf2ee5118213c4e95c4d314b681d2dcfa58702cd1ad7de667283508d69a36499bb767f4594745883c6fca0c54e365216
|
||||||
|
Loading…
Reference in New Issue
Block a user