From c72a43d280744b2b1fec5e981651fc9bc8035f94 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 24 Oct 2012 13:00:38 +0200 Subject: make rsyslog core suspened actions after 10 failures in a row This was former the case after 1,000 failures and could cause rsyslog to be spammed/ressou --- ChangeLog | 4 ++++ action.c | 2 +- doc/v7compatibility.html | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b6726326..dcb6993e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ ---------------------------------------------------------------------------- Version 7.2.1 [v7-stable] 2012-10-?? +- the rsyslog core now suspeneds actions after 10 failures in a row + This was former the case after 1,000 failures and could cause rsyslog + to be spammed/ressources misused. See the v6 compatibility doc for more + details. - ommongodb rate-limits error messages to prevent spamming the syslog closes (for v7.2): http://bugzilla.adiscon.com/show_bug.cgi?id=366 ---------------------------------------------------------------------------- diff --git a/action.c b/action.c index 9c06f61e..ca260f92 100644 --- a/action.c +++ b/action.c @@ -659,7 +659,7 @@ actionDoRetry(action_t *pThis, time_t ttNow, int *pbShutdownImmediate) iRetries = 0; while((*pbShutdownImmediate == 0) && pThis->eState == ACT_STATE_RTRY) { iRet = pThis->pMod->tryResume(pThis->pModData); - if((pThis->iResumeOKinRow > 999) && (pThis->iResumeOKinRow % 1000 == 0)) { + if((pThis->iResumeOKinRow > 9) && (pThis->iResumeOKinRow % 10 == 0)) { bTreatOKasSusp = 1; pThis->iResumeOKinRow = 0; } else { diff --git a/doc/v7compatibility.html b/doc/v7compatibility.html index 692a4fe1..8834cd54 100644 --- a/doc/v7compatibility.html +++ b/doc/v7compatibility.html @@ -42,6 +42,16 @@ They tell that the construct is deprecated and which statement is to be used as replacement. This does not affect operations: both modules are still fully operational and will not be removed in the v7 timeframe. +

Retries of output plugins that do not do proper replies

+

Some output plugins may not be able to detect if their target is capable of +accepting data again after an error (technically, they always return OK when +TryResume is called). Previously, the rsyslog core engine suspended such an action +after 1000 succesive failures. This lead to potentially a large amount of +errors and error messages. Starting with 7.2.1, this has been reduced to 10 +successive failures. This still gives the plugin a chance to recover. In extreme +cases, a plugin may now enter suspend mode where it previously did not do so. +In practice, we do NOT expect that. +

This documentation is part of the rsyslog project.
Copyright © 2011-2012 by Rainer Gerhards and -- cgit v1.2.3