Hide Forgot
Description of problem: $ActionExecOnlyOnceEveryInterval directive doesn't limit the execution of the action to the successive action only but to all following actions. Moreover if another message comes within the limit, the timout never expires and the action is never performed Version-Release number of selected component (if applicable): rsyslog-4.6.2-3.el6.1.x86_64 How reproducible: always Steps to Reproduce: 1. add this to the end of /etc/rsyslog.conf $ActionExecOnlyOnceEveryInterval 30 local2.debug /var/log/test1.log local2.debug /var/log/test2.log and restart rsyslog 2. execute: for I in `seq 100`; do logger -p local2.debug "test $I"; sleep 5; done Actual results: only first message appears in both logs Expected results: every message should be logged into test2.log and every 30 seconds the message should be logged also into test1.log Additional info:
I have checked the behavior on RHEL5.7. $ActionExecOnlyOnceEveryInterval affects both directives but the timeout expires as expected. I don't thing we should change that behavior on RHEL5 because customers may already rely on it.
The upstream has clarified that the intended scope of this directive is all following actions. To limit the scope to only some of the following actions, it can be used like this: local2.debug /var/log/test1.log $ActionExecOnlyOnceEveryInterval 30 local2.debug /var/log/test2.log local2.debug /var/log/test3.log $ActionExecOnlyOnceEveryInterval 0 local2.debug /var/log/test4.log The timeout issue still needs to be fixed.
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. http://rhn.redhat.com/errata/RHBA-2011-1673.html