summaryrefslogtreecommitdiffstats
path: root/action.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-04-26 15:19:13 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2010-04-26 15:19:13 +0200
commiteec894fbc5eb263e6def1f2e35f9882967c95a88 (patch)
treeb6be4e3076f499e4c8023f88e4ddbfac55f60ea0 /action.h
parent270e455d6d9c6e7e580d6784435bf57ddc71bd85 (diff)
downloadrsyslog-eec894fbc5eb263e6def1f2e35f9882967c95a88.tar.gz
rsyslog-eec894fbc5eb263e6def1f2e35f9882967c95a88.tar.xz
rsyslog-eec894fbc5eb263e6def1f2e35f9882967c95a88.zip
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).
Diffstat (limited to 'action.h')
-rw-r--r--action.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/action.h b/action.h
index 6cc4df5c..4a6c3c88 100644
--- a/action.h
+++ b/action.h
@@ -56,8 +56,9 @@ struct action_s {
bool bWriteAllMarkMsgs;/* should all mark msgs be written (not matter how recent the action was executed)? */
int iSecsExecOnceInterval; /* if non-zero, minimum seconds to wait until action is executed again */
action_state_t eState; /* current state of action */
- int bHadAutoCommit; /* did an auto-commit happen during doAction()? */
+ bool bHadAutoCommit; /* did an auto-commit happen during doAction()? */
time_t ttResumeRtry; /* when is it time to retry the resume? */
+ int iResumeOKinRow; /* number of times in a row that resume said OK with an immediate failure following */
int iResumeInterval;/* resume interval for this action */
int iResumeRetryCount;/* how often shall we retry a suspended action? (-1 --> eternal) */
int iNbrResRtry; /* number of retries since last suspend */