Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1133687 - File Input Module(imfile) does not continue logging when service is logrotated with the 'copytruncate' option
File Input Module(imfile) does not continue logging when service is logrotate...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: rsyslog (Show other bugs)
7.2
All All
high Severity high
: rc
: 7.4
Assigned To: Jiří Vymazal
Stefan Dordevic
Vladimír Slávik
: FutureFeature, Triaged
: 1376459 (view as bug list)
Depends On: rsyslog-rhel74-rebase
Blocks: 1298243 1377248
  Show dependency treegraph
 
Reported: 2014-08-25 16:08 EDT by jstephen
Modified: 2017-08-02 08 EDT (History)
14 users (show)

See Also:
Fixed In Version: rsyslog-8.24.0-6.el7
Doc Type: Known Issue
Doc Text:
Some log messages are lost when the *logrotate* "copytruncate" option is used with the *rsyslog* *imfile* module When the *logrotate* utility with "copytruncate" option is rotating a log file, the *imfile* module of the *rsyslog* utility might not have read all of the log messages from the file being rotated. As a consequence, these log messages are lost. To work around this problem, do not use the "copytruncate" log rotation option. Alternatively, it is possible to lower the probability of message loss by using the experimental option "reopenOnTruncate=on".
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-08-01 05:53:51 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 2619341 None None None 2017-07-10 09:41 EDT
Red Hat Knowledge Base (Solution) 2770111 None None None 2017-07-10 09:41 EDT
Red Hat Product Errata RHBA-2017:2306 normal SHIPPED_LIVE rsyslog bug fix and enhancement update 2017-08-01 08:41:59 EDT

  None (edit)
Description jstephen 2014-08-25 16:08:10 EDT
Description of problem:
Using the rsyslog File Input module with tomcat6's catalina.out file, it stops logging to syslog when catalina.out logrotate occurs.

/var/log/tomcat6/catalina.out {
    copytruncate
    weekly
    rotate 52
    compress
    missingok
    create 0644 tomcat tomcat
}

** rsyslog **

$ModLoad imfile

# catalina.out
$InputFileName /var/log/tomcat6/catalina.out
$InputFileTag catalina-out
$InputFileStateFile stat-catalina-out
$InputFileSeverity info
$InputFilePersistStateInterval 20000
$InputRunFileMonitor

Version-Release number of selected component (if applicable):
rsyslog-5.8.10-8.el6.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Install tomcat6 package
2. Configure rsyslog to use the File Input module on /var/log/tomcat6/catalina.out
3. Force a logrotate

Actual results:
File input module stops working

Expected results:
File input module should continue logging to syslog

Additional info:
When logrotate occurs on most services/daemons, a reload(or SIGHUP) is sent to the process which causes it to release an association(or "connection") with the current log file and open a new file descriptor to the newly created log file. This is how logrotate works without issues for rsyslog, cron, etc.

File input module was tested with logrotate and works for httpd(which does not use copytruncate)
Comment 2 Tomas Heinrich 2014-09-02 10:49:23 EDT
Actually, this is a known issue[0].

The v5 and (since el6.6) v7 versions don't support rotation of monitored files.

This functionality was added upstream "recently", but only to the v8 branch. It _might_ be possible to backport it, but that would need more research.

[0] http://lists.adiscon.net/pipermail/rsyslog/2013-June/033068.html
Comment 4 Tomas Heinrich 2014-09-18 05:51:49 EDT
Looks like the issue is with the 'copytruncate' option to logrotate. In the v5 version, the imfile plugin should support proper file rotation (renaming the current file and proceeding to write to a new one with the original name).
I'm not familiar with Tomcat, but, theoretically, it should be possible to modify it (or write a script) to either do a proper rotation, or, instead of writing to catalina.out, pipe the logs to logger(1) or somesuch, or utilize some other input plugin other than imfile.
Comment 5 jstephen 2014-12-10 12:04:06 EST
Hello Tomas,

Thanks for the input - do you have any skeleton wrapper-example that I could recommend to the customer as a possible workaround?
Comment 6 Tomas Heinrich 2014-12-11 07:27:09 EST
Not at this point. I'm not familiar with Tomcat.
Comment 24 Jiří Vymazal 2017-01-03 05:52:50 EST
Tested this with rsyslog v8 and not able to reproduce the tomcat issue anymore (catalina still logs after forced logrotate with above configuration options)
Comment 36 Assaf Muller 2017-07-10 09:41:08 EDT
*** Bug 1376459 has been marked as a duplicate of this bug. ***
Comment 41 errata-xmlrpc 2017-08-01 05:53:51 EDT
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-2017:2306

Note You need to log in before you can comment on or make changes to this bug.