mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-16 04:00:41 +01:00
- DEAD_PORT now uses unassigned IANA port unlike to be used on the system (dynamic port querying is racy and we had at least once an issue, so we can remove ambiguity here easily) - replace some diag.sh commands by bash functions
55 lines
2.0 KiB
Bash
Executable File
55 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Test for DA mode on the main message queue
|
|
# This test checks if DA mode operates correctly. To do so,
|
|
# it uses a small in-memory queue size, so that DA mode is initiated
|
|
# rather soon, and disk spooling used. There is some uncertainty (based
|
|
# on machine speeds), but in general the test should work rather well.
|
|
# We add a few messages after the initial run, just so that we can
|
|
# check everything recovers from DA mode correctly.
|
|
# added 2009-04-22 by Rgerhards
|
|
# This file is part of the rsyslog project, released under GPLv3
|
|
echo ===============================================================================
|
|
echo "[da-mainmsg-q.sh]: testing main message queue in DA mode (going to disk)"
|
|
. $srcdir/diag.sh init
|
|
generate_conf
|
|
add_conf '
|
|
$ModLoad ../plugins/imtcp/.libs/imtcp
|
|
$MainMsgQueueTimeoutShutdown 10000
|
|
$InputTCPServerRun '$TCPFLOOD_PORT'
|
|
|
|
# set spool locations and switch queue to disk assisted mode
|
|
$WorkDirectory test-spool
|
|
$MainMsgQueueSize 200 # this *should* trigger moving on to DA mode...
|
|
# note: we must set QueueSize sufficiently high, so that 70% (light delay mark)
|
|
# is high enough above HighWatermark!
|
|
$MainMsgQueueHighWatermark 80
|
|
$MainMsgQueueLowWatermark 40
|
|
$MainMsgQueueFilename mainq
|
|
$MainMsgQueueType linkedlist
|
|
|
|
$template outfmt,"%msg:F,58:2%\n"
|
|
template(name="dynfile" type="string" string=`echo $RSYSLOG_OUT_LOG`) # trick to use relative path names!
|
|
:msg, contains, "msgnum:" ?dynfile;outfmt
|
|
'
|
|
startup
|
|
|
|
# part1: send first 50 messages (in memory, only)
|
|
#tcpflood 127.0.0.1 '$TCPFLOOD_PORT' 1 50
|
|
injectmsg 0 50
|
|
. $srcdir/diag.sh wait-queueempty # let queue drain for this test case
|
|
|
|
# part 2: send bunch of messages. This should trigger DA mode
|
|
#injectmsg 50 20000
|
|
injectmsg 50 2000
|
|
ls -l test-spool # for manual review
|
|
|
|
# send another handful
|
|
injectmsg 2050 50
|
|
#sleep 1 # we need this so that rsyslogd can receive all outstanding messages
|
|
|
|
# clean up and check test result
|
|
shutdown_when_empty # shut down rsyslogd when done processing messages
|
|
wait_shutdown
|
|
seq_check 0 2099
|
|
exit_test
|