diff --git a/.gitignore b/.gitignore index 61fde41..8c5936d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/sanlock-3.8.4.tar.gz +SOURCES/sanlock-3.9.1.tar.gz diff --git a/.sanlock.metadata b/.sanlock.metadata index b069991..687c69f 100644 --- a/.sanlock.metadata +++ b/.sanlock.metadata @@ -1 +1 @@ -494d5efc260b643ed9a3ee6bbdb0d31ecb14c201 SOURCES/sanlock-3.8.4.tar.gz +ca8428d1be60cf92953b4aad4bf26802b9e7d266 SOURCES/sanlock-3.9.1.tar.gz diff --git a/SOURCES/0001-sanlock-fix-memory-leak-of-lockspace-renewal_history.patch b/SOURCES/0001-sanlock-fix-memory-leak-of-lockspace-renewal_history.patch deleted file mode 100644 index fffb9e2..0000000 --- a/SOURCES/0001-sanlock-fix-memory-leak-of-lockspace-renewal_history.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e82899fd996f4901e1ec89d77e4a17a1032fee8f Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Thu, 3 Mar 2022 09:39:52 -0600 -Subject: [PATCH 1/4] sanlock: fix memory leak of lockspace renewal_history - -Leak was in original commit for "sanlock: renewal history" -6313c709722b3ba63234a75d1651a160bf1728ee. - -With the default renewal history size, each lockspace that -was created would leak about 4kb of memory. ---- - src/lockspace.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/lockspace.c b/src/lockspace.c -index 2ebc247dce41..d23dccd84815 100644 ---- a/src/lockspace.c -+++ b/src/lockspace.c -@@ -939,6 +939,8 @@ static void free_sp(struct space *sp) - { - if (sp->lease_status.renewal_read_buf) - free(sp->lease_status.renewal_read_buf); -+ if (sp->renewal_history) -+ free(sp->renewal_history); - free(sp); - } - --- -2.7.5 - diff --git a/SOURCES/0002-sanlock-fix-pthread_create-error-check.patch b/SOURCES/0002-sanlock-fix-pthread_create-error-check.patch deleted file mode 100644 index 5809dc7..0000000 --- a/SOURCES/0002-sanlock-fix-pthread_create-error-check.patch +++ /dev/null @@ -1,51 +0,0 @@ -From e44c47c48a3a71502deacbafda851cb6d93e78c8 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Wed, 9 Mar 2022 15:25:11 -0600 -Subject: [PATCH 2/4] sanlock: fix pthread_create error check - -for non-zero rather than less than zero ---- - src/lockspace.c | 4 ++-- - src/main.c | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/lockspace.c b/src/lockspace.c -index d23dccd84815..582a0e973566 100644 ---- a/src/lockspace.c -+++ b/src/lockspace.c -@@ -1070,8 +1070,8 @@ int add_lockspace_start(struct sanlk_lockspace *ls, uint32_t io_timeout, struct - (unsigned long long)sp->host_id_disk.offset); - - rv = pthread_create(&sp->thread, NULL, lockspace_thread, sp); -- if (rv < 0) { -- log_erros(sp, "add_lockspace create thread failed"); -+ if (rv) { -+ log_erros(sp, "add_lockspace create thread failed %d", rv); - goto fail_del; - } - -diff --git a/src/main.c b/src/main.c -index 5b6fabc6d0b8..613fb0ee23d5 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -995,7 +995,7 @@ static int thread_pool_add_work(struct cmd_args *ca) - if (!pool.free_workers && pool.num_workers < pool.max_workers) { - rv = pthread_create(&th, NULL, thread_pool_worker, - (void *)(long)pool.num_workers); -- if (rv < 0) { -+ if (rv) { - log_error("thread_pool_add_work ci %d error %d", ca->ci_in, rv); - list_del(&ca->list); - pthread_mutex_unlock(&pool.mutex); -@@ -1035,7 +1035,7 @@ static int thread_pool_create(int min_workers, int max_workers) - for (i = 0; i < min_workers; i++) { - rv = pthread_create(&th, NULL, thread_pool_worker, - (void *)(long)i); -- if (rv < 0) -+ if (rv) - break; - pool.num_workers++; - } --- -2.7.5 - diff --git a/SOURCES/0003-Revert-sanlock-Shrink-thread-pool-when-there-is-no-w.patch b/SOURCES/0003-Revert-sanlock-Shrink-thread-pool-when-there-is-no-w.patch deleted file mode 100644 index f07cdcf..0000000 --- a/SOURCES/0003-Revert-sanlock-Shrink-thread-pool-when-there-is-no-w.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4ed90cfb2462d3463ae74935c5eeb9d9588ea098 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Thu, 17 Mar 2022 13:41:31 -0500 -Subject: [PATCH 3/4] Revert "sanlock: Shrink thread pool when there is no - work" - -This reverts commit 0ff9c1ab8852bec846822ee2af55ebcb7e5f5967. - -This patch causes unexplained growth in memory usage. -Part of the problem may be that the worker threads are -not joined and the detached state is not set, but an -initial test setting the detached state didn't seem -to fix the problem. ---- - src/main.c | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/src/main.c b/src/main.c -index 613fb0ee23d5..b447b723a490 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -946,9 +946,6 @@ static void *thread_pool_worker(void *data) - - while (1) { - while (!pool.quit && list_empty(&pool.work_data)) { -- if (pool.free_workers >= DEFAULT_MIN_WORKER_THREADS) -- goto out; -- - pool.free_workers++; - pthread_cond_wait(&pool.cond, &pool.mutex); - pool.free_workers--; -@@ -969,7 +966,6 @@ static void *thread_pool_worker(void *data) - break; - } - --out: - pool.num_workers--; - if (!pool.num_workers) - pthread_cond_signal(&pool.quit_wait); --- -2.7.5 - diff --git a/SOURCES/0004-sanlock-fix-pthread_create-error-paths.patch b/SOURCES/0004-sanlock-fix-pthread_create-error-paths.patch deleted file mode 100644 index 1b8fcd3..0000000 --- a/SOURCES/0004-sanlock-fix-pthread_create-error-paths.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 574d3cc3ecccd1e8a6c1a8a861dd4847a05789f5 Mon Sep 17 00:00:00 2001 -From: David Teigland -Date: Fri, 18 Mar 2022 09:32:06 -0500 -Subject: [PATCH 4/4] sanlock: fix pthread_create error paths - -The fix for pthread_create errors in commit - 5abb9d50616d399914958b99352b8cf016e4928a - sanlock: fix pthread_create error check -missed error handling further in the exit path. ---- - src/lockspace.c | 1 + - src/main.c | 8 ++++++-- - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/src/lockspace.c b/src/lockspace.c -index 582a0e973566..d9b79f6de257 100644 ---- a/src/lockspace.c -+++ b/src/lockspace.c -@@ -1072,6 +1072,7 @@ int add_lockspace_start(struct sanlk_lockspace *ls, uint32_t io_timeout, struct - rv = pthread_create(&sp->thread, NULL, lockspace_thread, sp); - if (rv) { - log_erros(sp, "add_lockspace create thread failed %d", rv); -+ rv = -1; - goto fail_del; - } - -diff --git a/src/main.c b/src/main.c -index b447b723a490..5a0f9ba677ff 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -995,6 +995,7 @@ static int thread_pool_add_work(struct cmd_args *ca) - log_error("thread_pool_add_work ci %d error %d", ca->ci_in, rv); - list_del(&ca->list); - pthread_mutex_unlock(&pool.mutex); -+ rv = -1; - return rv; - } - pool.num_workers++; -@@ -1019,7 +1020,7 @@ static void thread_pool_free(void) - static int thread_pool_create(int min_workers, int max_workers) - { - pthread_t th; -- int i, rv; -+ int i, rv = 0; - - memset(&pool, 0, sizeof(pool)); - INIT_LIST_HEAD(&pool.work_data); -@@ -1031,8 +1032,11 @@ static int thread_pool_create(int min_workers, int max_workers) - for (i = 0; i < min_workers; i++) { - rv = pthread_create(&th, NULL, thread_pool_worker, - (void *)(long)i); -- if (rv) -+ if (rv) { -+ log_error("thread_pool_create failed %d", rv); -+ rv = -1; - break; -+ } - pool.num_workers++; - } - --- -2.7.5 - diff --git a/SPECS/sanlock.spec b/SPECS/sanlock.spec index c6db01a..30efcda 100644 --- a/SPECS/sanlock.spec +++ b/SPECS/sanlock.spec @@ -1,6 +1,6 @@ Name: sanlock -Version: 3.8.4 -Release: 4%{?dist} +Version: 3.9.1 +Release: 1%{?dist} Summary: A shared storage lock manager License: GPLv2 and GPLv2+ and LGPLv2+ @@ -22,20 +22,14 @@ Requires(preun): systemd-units Requires(postun): systemd-units Source0: https://releases.pagure.org/sanlock/%{name}-%{version}.tar.gz -Patch0: 0001-sanlock-fix-memory-leak-of-lockspace-renewal_history.patch -Patch1: 0002-sanlock-fix-pthread_create-error-check.patch -Patch2: 0003-Revert-sanlock-Shrink-thread-pool-when-there-is-no-w.patch -Patch3: 0004-sanlock-fix-pthread_create-error-paths.patch +#Patch0: %description The sanlock daemon manages leases for applications on hosts using shared storage. %prep %setup -q -%patch0 -p1 -b .backup0 -%patch1 -p1 -b .backup1 -%patch2 -p1 -b .backup2 -%patch3 -p1 -b .backup3 +#%patch0 -p1 -b .backup0 %build %set_build_flags @@ -60,8 +54,8 @@ make -C python \ install -D -m 0644 init.d/sanlock.service.native $RPM_BUILD_ROOT/%{_unitdir}/sanlock.service -install -D -m 0755 init.d/wdmd $RPM_BUILD_ROOT/usr/lib/systemd/systemd-wdmd -install -D -m 0644 init.d/wdmd.service.native $RPM_BUILD_ROOT/%{_unitdir}/wdmd.service +install -D -m 0755 init.d/systemd-wdmd $RPM_BUILD_ROOT/usr/lib/systemd/systemd-wdmd +install -D -m 0644 init.d/wdmd.service $RPM_BUILD_ROOT/%{_unitdir}/wdmd.service install -D -m 0644 src/logrotate.sanlock \ $RPM_BUILD_ROOT/etc/logrotate.d/sanlock @@ -73,7 +67,7 @@ install -D -m 0644 init.d/wdmd.sysconfig \ $RPM_BUILD_ROOT/etc/sysconfig/wdmd install -Dd -m 0755 $RPM_BUILD_ROOT/etc/wdmd.d -install -Dd -m 0775 $RPM_BUILD_ROOT/%{_localstatedir}/run/sanlock +install -Dd -m 0775 $RPM_BUILD_ROOT/run/sanlock %pre getent group sanlock > /dev/null || /usr/sbin/groupadd \ @@ -100,15 +94,12 @@ getent passwd sanlock > /dev/null || /usr/sbin/useradd \ %{_sbindir}/wdmd %dir %{_sysconfdir}/wdmd.d %dir %{_sysconfdir}/sanlock -%dir %attr(-,sanlock,sanlock) %{_localstatedir}/run/sanlock +%dir %attr(-,sanlock,sanlock) /run/sanlock %{_mandir}/man8/wdmd* %{_mandir}/man8/sanlock* %config(noreplace) %{_sysconfdir}/logrotate.d/sanlock %config(noreplace) %{_sysconfdir}/sanlock/sanlock.conf %config(noreplace) %{_sysconfdir}/sysconfig/wdmd -%doc init.d/sanlock -%doc init.d/sanlock.service -%doc init.d/wdmd.service %package lib Summary: A shared storage lock manager library @@ -162,6 +153,18 @@ developing applications that use %{name}. %{_libdir}/pkgconfig/libsanlock_client.pc %changelog +* Mon Jan 22 2024 David Teigland - 3.9.1-1 +- upstream release, fix rpm issues + +* Fri Dec 15 2023 David Teigland - 3.9.0-3 +- fix rpm issues + +* Fri Dec 15 2023 David Teigland - 3.9.0-2 +- fix rpm issues + +* Wed Dec 13 2023 David Teigland - 3.9.0-1 +- rebase to new upstream release + * Fri Apr 01 2022 David Teigland - 3.8.4-4 - fixes for thread/memory leak @@ -173,7 +176,7 @@ developing applications that use %{name}. Related: rhbz#1991688 * Mon Jun 28 2021 David Teigland - 3.8.1-10 -- fuck this process +- f#ck this process * Fri Apr 16 2021 Mohan Boddu - 3.8.1-9 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937