File 975b004d-virtlogd-over-logrotate.patch of Package libvirt.16761
commit 975b004d07e472a4f7557f923fed228f3fa02f86
Author: Daniel P. Berrangé <berrange@redhat.com>
Date: Fri Jul 5 10:32:53 2019 +0100
logging: ensure virtlogd rollover takes priority over logrotate
The virtlogd config is set to rollover logs every 2 MB.
Normally a logrotate config file is also installed to handle cases where
virtlogd is disabled. This is set to rollover weekly with no size
constraint.
As a result logrotate can interfere with virtlogd's, rolling over files
that virtlogd has already taken care of.
This changes logrotate configs to rollover based on a max size
constraint of 2 MB + 1 byte. When virtlogd is running the log files will
never get this large, making logrotate a no-op.
If the user changes the size in virtlogd's config to something larger,
they are responsible for also changing the logrotate config suitably.
The LXC/libxl drivers don't use virtlogd, but there logrotate config is
altered to match the QEMU driver config, for the sake of consistency.
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Index: libvirt-5.1.0/src/logging/virtlogd.conf
===================================================================
--- libvirt-5.1.0.orig/src/logging/virtlogd.conf
+++ libvirt-5.1.0/src/logging/virtlogd.conf
@@ -90,6 +90,12 @@
#admin_max_clients = 5
# Maximum file size before rolling over. Defaults to 2 MB
+#
+# Beware that a logrotate config file might be installed too,
+# to handle cases where virtlogd is disabled. To ensure that
+# the logrotate config is a no-op when virtlogd is running,
+# make sure that max_size here is smaller than size listed
+# in the logrotate config.
#max_size = 2097152
# Maximum number of backup files to keep. Defaults to 3,
Index: libvirt-5.1.0/src/remote/libvirtd.libxl.logrotate.in
===================================================================
--- libvirt-5.1.0.orig/src/remote/libvirtd.libxl.logrotate.in
+++ libvirt-5.1.0/src/remote/libvirtd.libxl.logrotate.in
@@ -1,5 +1,5 @@
@localstatedir@/log/libvirt/libxl/*.log {
- weekly
+ size 2097153
missingok
rotate 4
compress
Index: libvirt-5.1.0/src/remote/libvirtd.lxc.logrotate.in
===================================================================
--- libvirt-5.1.0.orig/src/remote/libvirtd.lxc.logrotate.in
+++ libvirt-5.1.0/src/remote/libvirtd.lxc.logrotate.in
@@ -1,5 +1,5 @@
@localstatedir@/log/libvirt/lxc/*.log {
- weekly
+ size 2097153
missingok
rotate 4
compress
Index: libvirt-5.1.0/src/remote/libvirtd.qemu.logrotate.in
===================================================================
--- libvirt-5.1.0.orig/src/remote/libvirtd.qemu.logrotate.in
+++ libvirt-5.1.0/src/remote/libvirtd.qemu.logrotate.in
@@ -1,5 +1,13 @@
@localstatedir@/log/libvirt/qemu/*.log {
- weekly
+ # The QEMU driver is configured to use virtlogd by
+ # default, which will perform log rollover.
+ # This logrotate config is still installed for cases
+ # where the user has switched off virtlogd.
+ #
+ # If virtlogd is active, ensure that size here is
+ # larger than 'max_size' in the virtlogd config
+ # so that logrotate becomes a no-op
+ size 2097153
missingok
rotate 4
compress