Resolves: RHEL-76180

This commit is contained in:
David Teigland 2025-01-08 16:31:25 -06:00
parent f7e6216a35
commit f409e59d4e
8 changed files with 1191 additions and 6 deletions

1
.gitignore vendored
View File

@ -34,3 +34,4 @@
/sanlock-3.9.0.tar.gz
/sanlock-3.9.4.tar.gz
/sanlock-3.9.5.tar.gz
/sanlock-4.0.0.tar.gz

View File

@ -0,0 +1,25 @@
From 77ad5324fbad7558dd555cd7cabb0fa22a49e38a Mon Sep 17 00:00:00 2001
From: David Teigland <teigland@redhat.com>
Date: Wed, 30 Apr 2025 11:06:51 -0500
Subject: [PATCH] sanlock: fix zero io timeout for direct lockspace requests
---
src/direct.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/direct.c b/src/direct.c
index 208dd3509b14..e009de1a44b5 100644
--- a/src/direct.c
+++ b/src/direct.c
@@ -314,6 +314,8 @@ static int do_delta_action(int action,
if (!io_timeout)
io_timeout = com.io_timeout;
+ if (!io_timeout)
+ io_timeout = DEFAULT_IO_TIMEOUT;
rv = sizes_from_flags(ls->flags, &sector_size, &align_size, &max_hosts, "LSF");
if (rv)
--
2.48.1

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} # this is the testcase identifier, which OSCI pipeline uses

View File

@ -1,6 +1,6 @@
Name: sanlock
Version: 3.9.5
Release: 4%{?dist}
Version: 4.0.0
Release: 1%{?dist}
Summary: A shared storage lock manager
License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later
URL: https://pagure.io/sanlock/
@ -17,8 +17,7 @@ Requires(preun): systemd-units
Requires(postun): systemd-units
Source0: https://releases.pagure.org/sanlock/%{name}-%{version}.tar.gz
Patch0: 0001-systemd-wdmd-work-around-race-with-udev-setting-soft.patch
Patch1: 0002-sanlock-new-NODELAY-flag-for-add_lockspace.patch
Patch0: 0001-sanlock-fix-zero-io-timeout-for-direct-lockspace-req.patch
%description
The sanlock daemon manages leases for applications on hosts using shared storage.
@ -26,7 +25,6 @@ The sanlock daemon manages leases for applications on hosts using shared storage
%prep
%setup -q
%patch0 -p1 -b .backup0
%patch1 -p1 -b .backup1
%build
%set_build_flags
@ -134,6 +132,9 @@ developing applications that use %{name}.
%{_libdir}/pkgconfig/libsanlock_client.pc
%changelog
* Wed Apr 30 2025 David Teigland <teigland@redhat.com> - 4.0.0-1
- new upstream release
* Wed Jan 08 2025 David Teigland <teigland@redhat.com> - 3.9.5-4
- restore useradd and groupadd in place of sysusers rpm macros

View File

@ -1 +1 @@
SHA512 (sanlock-3.9.5.tar.gz) = 2342ee57d98c0e209d92ad809aae22f919c02920a2db194be2fc4f60677c32c2f27621ab0183b69c36ae1d0814753fb3461985bc4a8d1bced879b403ff0cf400
SHA512 (sanlock-4.0.0.tar.gz) = a478c8bbc09043d5dad18cc3ddbcaeefec0dd5587ab2807721424a1efc9d58ab82deacaa2f88289dc9990a2a6f95a80dabb727670e7aeaeba5ed0a57a3849c27

26
tests/scripts/run_tests.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
sanlock daemon -w 0
gcc sanlk_load.c -lrt -laio -lblkid -lsanlock -o sanlk_load
dd if=/dev/zero of=loopfile0 bs=1M count=10 oflag=direct
dd if=/dev/zero of=loopfile1 bs=1M count=10 oflag=direct
losetup /dev/loop0 loopfile0
losetup /dev/loop1 loopfile1
./sanlk_load init /dev/loop 2 8
./sanlk_load rand /dev/loop -s 2 -r 8 -S 30 -e 1 -i 1
[ $? -ne 0 ] && echo "sanlk_load error" >&2 && exit 1
sanlock shutdown -f 1
losetup -d /dev/loop0
losetup -d /dev/loop1
rm loopfile0
rm loopfile1

1111
tests/scripts/sanlk_load.c Normal file

File diff suppressed because it is too large Load Diff

15
tests/tests.yml Normal file
View File

@ -0,0 +1,15 @@
- hosts: localhost
roles:
- role: standard-test-basic # this is a standard test role, it takes care of the test environment, logging, archiving results..
tags:
- classic
tests:
- simple:
dir: scripts
run: ./run_tests.sh
required_packages:
- sanlock
- sanlock-devel
- gcc
- libaio-devel
- libblkid-devel