From a056dad8b359ebab1c34c94b763b5519b066cb76 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 5 Nov 2013 18:13:02 +0100 Subject: emit warning message if queue.size is set dangerously low --- runtime/queue.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'runtime/queue.c') diff --git a/runtime/queue.c b/runtime/queue.c index 935a8106..3834343c 100644 --- a/runtime/queue.c +++ b/runtime/queue.c @@ -2084,6 +2084,13 @@ qqueueStart(qqueue_t *pThis) /* this is the ConstructionFinalizer */ break; } + if(pThis->iMaxQueueSize < 100) { + errmsg.LogError(0, RS_RET_OK_WARN, "Note: queue.size=\"%d\" is very " + "low and can lead to unpredictable results. See also " + "http://www.rsyslog.com/lower-bound-for-queue-sizes/", + pThis->iMaxQueueSize); + } + if(pThis->iFullDlyMrk == -1) pThis->iFullDlyMrk = pThis->iMaxQueueSize - (pThis->iMaxQueueSize / 100) * 3; /* default 97% */ -- cgit v1.2.3 From 7906ee389c270bc96cfdf261c348c57b6dd33cb3 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 5 Nov 2013 18:22:21 +0100 Subject: improved checking of queue config parameters on startup --- runtime/queue.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'runtime/queue.c') diff --git a/runtime/queue.c b/runtime/queue.c index 3834343c..409424e7 100644 --- a/runtime/queue.c +++ b/runtime/queue.c @@ -2091,16 +2091,17 @@ qqueueStart(qqueue_t *pThis) /* this is the ConstructionFinalizer */ pThis->iMaxQueueSize); } - if(pThis->iFullDlyMrk == -1) + /* we need to do a quick check if our water marks are set plausible. If not, + * we correct the most important shortcomings. + */ + if(pThis->iFullDlyMrk == -1 || pThis->iFullDlyMrk > pThis->iMaxQueueSize) pThis->iFullDlyMrk = pThis->iMaxQueueSize - (pThis->iMaxQueueSize / 100) * 3; /* default 97% */ - if(pThis->iLightDlyMrk == -1) + if(pThis->iLightDlyMrk == -1 || pThis->iLightDlyMrk > pThis->iMaxQueueSize) pThis->iLightDlyMrk = pThis->iMaxQueueSize - (pThis->iMaxQueueSize / 100) * 30; /* default 70% */ - - /* we need to do a quick check if our water marks are set plausible. If not, - * we correct the most important shortcomings. TODO: do that!!!! -- rgerhards, 2008-03-14 - */ + if(pThis->iDeqBatchSize > pThis->iMaxQueueSize) + pThis->iDeqBatchSize = pThis->iMaxQueueSize; /* finalize some initializations that could not yet be done because it is * influenced by properties which might have been set after queueConstruct () -- cgit v1.2.3