Description of problem: in a test environment with 1 1+GB production.log file logrotate fails due to a reported insufficient space condition. a review of the script indicates that the script line logvol_free_space=`df -lk $file | awk '{ print $3 }' | tail -n 1` uses the$3 value from the returned command which is total uses space, not the $4 value which would show available space. Version-Release number of selected component (if applicable):5.5.0.13 How reproducible: review the appliance_console.log in the /var/www/miq/vmdb/log directory on any appliance active for > 24 hours. Notice that the "available free space" value is approximately the size of the used space at the time the command is issued, not the larger value which on a new appliance should be close to 10GB ( or 10,000,000 1-k blocks) Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: changing the script line to reference $4 instead of $3 should correct the issue. the shell script can be found in /opt/rh/cfme-appliance
https://github.com/ManageIQ/manageiq-appliance/pull/50
New commit detected on ManageIQ/manageiq-appliance/master: https://github.com/ManageIQ/manageiq-appliance/commit/8b504cd4b3bd6e97fefd6e9c8b710e137eb051d0 commit 8b504cd4b3bd6e97fefd6e9c8b710e137eb051d0 Author: Nick Carboni <ncarboni> AuthorDate: Fri Jan 8 11:10:33 2016 -0500 Commit: Nick Carboni <ncarboni> CommitDate: Fri Jan 8 11:10:33 2016 -0500 Change logrotate free space check script to read free space correctly Previously we were reading space used as free space. https://bugzilla.redhat.com/show_bug.cgi?id=1294991 logrotate_free_space_check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
While the old check of logvol_free_space=`df -lk $file | awk '{ print $3 }' | tail -n 1` is incorrect in that it is pulling the wrong column. However: logvol_free_space=`df -lk $file | awk '{ print $4 }' | tail -n 1` makes the assumption that the output is all on one line. For filesystems that have longer names, it will wrap the output /dev/mapper/vg_data-lv_pg 98G 24G 70G 25% /opt/rh/postgresql92/root/var/lib/pgsql/data so when $3 is awked, it has the potential to pull the "correct" field. Which is probably why it was missed. df -lk /opt/rh/postgresql92/root/var/lib/pgsql/data/pg_log/postgresql.log Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg_data-lv_pg 102176096 24228016 72758540 25% /opt/rh/postgresql92/root/var/lib/pgsql/data My suggestion would be to use the "-P" flag with df to force the POSIX output format and output with no wrapping. df -Plk /opt/rh/postgresql92/root/var/lib/pgsql/data/pg_log/postgresql.log Filesystem 1024-blocks Used Available Capacity Mounted on /dev/mapper/vg_data-lv_pg 102176096 24228056 72758500 25% /opt/rh/postgresql92/root/var/lib/pgsql/data So proposed change would be to change the function to: logvol_free_space=`df -Plk $file | awk '{ print $3 }' | tail -n 1`
Created new BZ item 1321675 for proposed update.
Felix, there will be no backport unless there is a cloned BZ with the cfme-5.5.z flag.
This issue is seen in 5.5 as well.Can this BZ be cloned to 5.5.z?
Verified in 5.6.0.6
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2016:1348