[Bug 1709670] Re: logrotate never recovers if the statefile is corrupted
Taylor Lewick
1709670 at bugs.launchpad.net
Wed Aug 16 21:02:17 UTC 2017
We tested this patched package version on ubuntu 14.04, via instructions
found https://wiki.ubuntu.com/Testing/EnableProposed.
We tested by manually creating a 2.0 GB file via fallocate under the
nginx log directory, and instructing the logrotate nginx config file to
rotate any file > 1.0 GB.
This worked, and then I manually corrupted the logrotate status file by
1) removing the top line, creating a new test log file, and verifying logrotate ran.
2) adding a line break in a file other than the top line, creating a new test log file, and verifying logrotate ran.
Patch Behavior appears to be working as designed.
Thank you,
Taylor
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to logrotate in Ubuntu.
https://bugs.launchpad.net/bugs/1709670
Title:
logrotate never recovers if the statefile is corrupted
Status in logrotate package in Ubuntu:
Fix Released
Status in logrotate source package in Trusty:
Fix Committed
Status in logrotate source package in Xenial:
Fix Committed
Status in logrotate source package in Zesty:
Fix Committed
Status in logrotate source package in Artful:
Fix Released
Status in logrotate package in Debian:
New
Bug description:
[Impact]
logrotate never recovers if the statefile is corrupted unless you
remove it or fix the corruption by hand.
Impact scenarios :
- System could eventually run out of disk space on a separate
partition if mounted in "/var" or specifically "/var/log" or even
worst if "/var/log" is on the same partition as "/" it could create
even more damage if by any chance the partition is running out of free
space.
- System keep updating the same files over and over, creating large
size logfiles.
- ...
[Test Case]
- Install logrotate
- Run "/etc/cron.daily/logrotate" ## The first logrotate run will generate the statefile "var/lib/logrotate/status"
- Modify "/var/lib/logrotate/status" by removing the first line in order to corrupt the file
- Re-run "/etc/cron.daily/logrotate" and one will get the following error : "error: bad top line in state file /var/lib/logrotate/status" every time you run logrotate
Unless you remove the statefile and start again or fix the corruption
by hand.
* Additionally, I will run the /path_to_source/test/test script as a
dogfooding that does ~72 tests.
[Regression Potential]
* Risk of potential regression is low, and IMHO couldn't be worst
than the actual situation where logrotate simply doesn't recover from
a corrupt statefile.
* The current patch does recover (after verification) and has been
through some upstream CI validation, community feedbacks, et al.
* Additionally, I will run the /path_to_source/test/test script as a
dogfooding that does ~72 tests.
[Other Info]
* Upstream commit:
https://github.com/logrotate/logrotate/commit/b9d82003002c98370e4131a7e43c76afcd23306a
* Upstream bug:
https://github.com/logrotate/logrotate/issues/45
* Debian bug:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871592
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/logrotate/+bug/1709670/+subscriptions
More information about the foundations-bugs
mailing list