mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 10:30:40 +01:00
Merge branch 'v4-stable' into v4-beta
Conflicts: tests/Makefile.am
This commit is contained in:
commit
0fd8143d87
@ -4,6 +4,8 @@ Version 4.5.7 [v4-beta] (rgerhards), 2009-11-??
|
||||
be generated only after the process has started, but not right from
|
||||
the beginning. This is assumed to be useful for hard-to-find bugs.
|
||||
Also improved the doc on the debug system.
|
||||
- bugfix [imported from 4.4.3]: $ActionExecOnlyOnceEveryInterval did
|
||||
not work.
|
||||
---------------------------------------------------------------------------
|
||||
Version 4.5.6 [v4-beta] (rgerhards), 2009-11-05
|
||||
- bugfix: named pipes did no longer work (they always got an open error)
|
||||
@ -166,6 +168,10 @@ Version 4.5.0 [DEVEL] (rgerhards), 2009-07-02
|
||||
an abort
|
||||
---------------------------------------------------------------------------
|
||||
Version 4.4.3 [v4-stable] (rgerhards), 2009-10-??
|
||||
- bugfix: $ActionExecOnlyOnceEveryInterval did not work.
|
||||
This was a regression from the time() optimizations done in v4.
|
||||
Bug tracker: http://bugzilla.adiscon.com/show_bug.cgi?id=143
|
||||
Thanks to Klaus Tachtler for reporting this bug.
|
||||
- bugfix: potential hang condition on queue shutdown
|
||||
[imported from v3-stable]
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
3
action.c
3
action.c
@ -710,7 +710,7 @@ actionWriteToAction(action_t *pAction)
|
||||
* a purely logical point of view. However, if safes us to check the system time in
|
||||
* (those common) cases where ExecOnceInterval is not used. -- rgerhards, 2008-09-16
|
||||
*/
|
||||
if(pAction->f_time != 0 && pAction->iSecsExecOnceInterval > 0 &&
|
||||
if(pAction->iSecsExecOnceInterval > 0 &&
|
||||
pAction->iSecsExecOnceInterval + pAction->tLastExec > getActNow(pAction)) {
|
||||
/* in this case we need to discard the message - its not yet time to exec the action */
|
||||
DBGPRINTF("action not yet ready again to be executed, onceInterval %d, tCurr %d, tNext %d\n",
|
||||
@ -721,6 +721,7 @@ actionWriteToAction(action_t *pAction)
|
||||
}
|
||||
|
||||
/* we use reception time, not dequeue time - this is considered more appropriate and also faster ;) -- rgerhards, 2008-09-17 */
|
||||
pAction->tLastExec = getActNow(pAction); /* re-init time flags */
|
||||
pAction->f_time = pAction->f_pMsg->ttGenTime;
|
||||
|
||||
/* When we reach this point, we have a valid, non-disabled action.
|
||||
|
||||
@ -11,6 +11,8 @@ TESTS = $(TESTRUNS) cfg.sh \
|
||||
sndrcv_gzip.sh \
|
||||
queue-persist.sh \
|
||||
pipeaction.sh
|
||||
execonlyonce.sh \
|
||||
queue-persist.sh
|
||||
|
||||
if ENABLE_OMSTDOUT
|
||||
TESTS += omod-if-array.sh \
|
||||
@ -130,6 +132,9 @@ EXTRA_DIST= 1.rstest 2.rstest 3.rstest err1.rstest \
|
||||
testsuites/master.rfctag \
|
||||
testsuites/nolimittag.conf \
|
||||
testsuites/master.nolimittag \
|
||||
execonlyonce.sh \
|
||||
testsuites/execonlyonce.conf \
|
||||
testsuites/execonlyonce.data \
|
||||
DiagTalker.java \
|
||||
cfg.sh
|
||||
|
||||
|
||||
28
tests/execonlyonce.sh
Executable file
28
tests/execonlyonce.sh
Executable file
@ -0,0 +1,28 @@
|
||||
# Test for the $ActionExecOnlyOnceEveryInterval directive.
|
||||
# We inject a couple of messages quickly during the interval,
|
||||
# then wait until the interval expires, then quickly inject
|
||||
# another set. After that, it is checked if exactly two messages
|
||||
# have arrived.
|
||||
# The once interval must be set to 3 seconds in the config file.
|
||||
# added 2009-11-12 by Rgerhards
|
||||
# This file is part of the rsyslog project, released under GPLv3
|
||||
echo ===============================================================================
|
||||
echo \[execonlyonce.sh\]: test for the $ActionExecOnlyOnceEveryInterval directive
|
||||
source $srcdir/diag.sh init
|
||||
source $srcdir/diag.sh startup execonlyonce.conf
|
||||
source $srcdir/diag.sh tcpflood 127.0.0.1 13514 1 10 1
|
||||
# now wait until the interval definitely expires
|
||||
sleep 4 # one more than the once inerval!
|
||||
# and inject another couple of messages
|
||||
source $srcdir/diag.sh tcpflood 127.0.0.1 13514 1 10 100
|
||||
source $srcdir/diag.sh shutdown-when-empty # shut down rsyslogd when done processing messages
|
||||
|
||||
# now we need your custom logic to see if the result is equal to the
|
||||
# expected result
|
||||
cmp rsyslog.out.log testsuites/execonlyonce.data
|
||||
if [ $? -eq 1 ]
|
||||
then
|
||||
echo "ERROR, output not as expected"
|
||||
exit 1
|
||||
fi
|
||||
source $srcdir/diag.sh exit
|
||||
12
tests/testsuites/execonlyonce.conf
Normal file
12
tests/testsuites/execonlyonce.conf
Normal file
@ -0,0 +1,12 @@
|
||||
# see the equally-named .sh file for details
|
||||
# rgerhards, 2009-11-12
|
||||
$IncludeConfig diag-common.conf
|
||||
|
||||
$ModLoad ../plugins/imtcp/.libs/imtcp
|
||||
$MainMsgQueueTimeoutShutdown 10000
|
||||
$InputTCPServerRun 13514
|
||||
|
||||
$template outfmt,"%msg:F,58:2%\n"
|
||||
$template dynfile,"rsyslog.out.log" # trick to use relative path names!
|
||||
$ActionExecOnlyOnceEveryInterval 3
|
||||
:msg, contains, "msgnum:" ?dynfile;outfmt
|
||||
2
tests/testsuites/execonlyonce.data
Normal file
2
tests/testsuites/execonlyonce.data
Normal file
@ -0,0 +1,2 @@
|
||||
00000001
|
||||
00000100
|
||||
Loading…
x
Reference in New Issue
Block a user