From eec894fbc5eb263e6def1f2e35f9882967c95a88 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Mon, 26 Apr 2010 15:19:13 +0200 Subject: bugfix(kind of): output plugin retry behaviour could cause engine to loop The rsyslog engine did not guard itself against output modules that do not properly convey back the tryResume() behaviour. This then leads to what looks like an endless loop. I consider this to be a bug of the engine not only because it should be hardened against plugin misbehaviour, but also because plugins may not be totally able to avoid this situation (depending on the type of and processing done by the plugin). --- tests/pipe_noreader.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/pipe_noreader.sh b/tests/pipe_noreader.sh index c80aaf3f..8dea0818 100755 --- a/tests/pipe_noreader.sh +++ b/tests/pipe_noreader.sh @@ -4,6 +4,12 @@ # as a permanent testcase. For some details, please see bug tracker # http://bugzilla.adiscon.com/show_bug.cgi?id=186 # +# IMPORTANT: we do NOT check any result message set. The whole point in +# this test is to verify that we do NOT run into an eternal loop. As such, +# the test is "PASS", if rsyslogd terminates. If it does not terminate, we +# obviously do not cause "FAIL", but processing will hang, which should be +# a good-enough indication of failure. +# # added 2010-04-26 by Rgerhards # This file is part of the rsyslog project, released under GPLv3 echo =============================================================================== @@ -18,5 +24,6 @@ source $srcdir/diag.sh startup pipe_noreader.conf source $srcdir/diag.sh tcpflood -m1000 -d500 source $srcdir/diag.sh shutdown-when-empty # shut down rsyslogd when done processing messages source $srcdir/diag.sh wait-shutdown # and wait for it to terminate -source $srcdir/diag.sh seq-check 0 999 +# NO need to check seqno -- see header comment +echo we did not loop, so the test is sucessfull source $srcdir/diag.sh exit -- cgit