Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Jan Friesse
82255f0a63 Use copytruncate method for logrotate 2022-03-30 17:12:02 +02:00
2 changed files with 67 additions and 1 deletions

View file

@ -18,11 +18,13 @@
Name: corosync
Summary: The Corosync Cluster Engine and Application Programming Interfaces
Version: 3.1.6
Release: 1%{?gitver}%{?dist}
Release: 2%{?gitver}%{?dist}
License: BSD
URL: http://corosync.github.io/corosync/
Source0: http://build.clusterlabs.org/corosync/releases/%{name}-%{version}%{?gittarver}.tar.gz
Patch0: logrotate-Use-copytruncate-method-by-default.patch
# Runtime bits
# The automatic dependency overridden in favor of explicit version lock
Requires: corosynclib%{?_isa} = %{version}-%{release}
@ -71,6 +73,7 @@ BuildRequires: make
%prep
%setup -q -n %{name}-%{version}%{?gittarver}
%patch0 -p1
%build
%if %{with runautogen}
@ -289,6 +292,9 @@ network splits)
%endif
%changelog
* Wed Mar 30 2022 Jan Friesse <jfriesse@redhat.com> - 3.1.6-2
- Use copytruncate method for logrotate
* Mon Nov 15 2021 Jan Friesse <jfriesse@redhat.com> - 3.1.6-1
- New upstream release

View file

@ -0,0 +1,60 @@
From 04362046c4a9d7307feb5b68341d567b7d0b94d6 Mon Sep 17 00:00:00 2001
From: Jan Friesse <jfriesse@redhat.com>
Date: Tue, 29 Mar 2022 17:09:22 +0200
Subject: [PATCH] logrotate: Use copytruncate method by default
The reopen lograte method has two main problems:
1. It does fail when corosync is not running (solvable by
adding "|| true")
2. If (for some reason, like SELinux) cfgtool -L fails, logrotate
fails and corosync keeps logging into old file. Added "|| true"
makes situation even worse because logrotate removes file but
corosync keeps logging into it.
Solution is to install copytruncate logrotate snip by default (and
keep reopen config file only for reference).
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
---
conf/logrotate/Makefile.am | 7 -------
conf/logrotate/corosync-reopen.in | 5 +++++
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/conf/logrotate/Makefile.am b/conf/logrotate/Makefile.am
index 4f7b7536..35efa2de 100644
--- a/conf/logrotate/Makefile.am
+++ b/conf/logrotate/Makefile.am
@@ -34,16 +34,9 @@ MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = corosync-reopen.in corosync-copytruncate.in
-if HAVE_QB_LOG_FILE_REOPEN
-corosync: corosync-reopen.in
- $(SED) -e 's#@''LOGDIR@#${LOGDIR}#g' \
- -e 's#@''SBINDIR@#$(sbindir)#g' \
- $< > $@
-else
corosync: corosync-copytruncate.in
$(SED) -e 's#@''LOGDIR@#${LOGDIR}#g' \
$< > $@
-endif
logrotatecorosyncdir = ${LOGROTATEDIR}
logrotatecorosync_DATA = corosync
diff --git a/conf/logrotate/corosync-reopen.in b/conf/logrotate/corosync-reopen.in
index 839c5dae..730fb741 100644
--- a/conf/logrotate/corosync-reopen.in
+++ b/conf/logrotate/corosync-reopen.in
@@ -1,3 +1,8 @@
+# This logrotate method has two main problems and it's kept only for reference:
+# 1. It does fail when corosync is not running (solvable by adding "|| true")
+# 2. If (for some reason) cfgtool -L fails, logrotate fails and corosync keeps
+# logging into old file. Added "|| true" makes situation even worse
+# because logrotate removes file but corosync keeps logging into it.
@LOGDIR@/corosync.log {
missingok
compress
--
2.33.1