diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-11-05 18:22:45 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-11-05 18:22:45 +0100 |
commit | 80a4feb542e15b2fe100f88690000789eab562bb (patch) | |
tree | 064ddd05efea786c32c3c80c6749eb90547feb22 | |
parent | 9052857047f0cb67ef7b2fe1519120bf37ba2648 (diff) | |
parent | f45297ed9b0687e9b5148b58d627678414121370 (diff) | |
download | rsyslog-80a4feb542e15b2fe100f88690000789eab562bb.tar.gz rsyslog-80a4feb542e15b2fe100f88690000789eab562bb.tar.bz2 rsyslog-80a4feb542e15b2fe100f88690000789eab562bb.zip |
Merge branch 'master' into master-ruleeng
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | doc/queue_parameters.html | 9 | ||||
-rw-r--r-- | runtime/queue.c | 20 |
3 files changed, 23 insertions, 7 deletions
@@ -1,4 +1,5 @@ Version 7.4.7 [v7.4-stable] 2013-11-?? +- improved checking of queue config parameters on startup - bugfix: call to ruleset with async queue did not use the queue closes: http://bugzilla.adiscon.com/show_bug.cgi?id=443 --------------------------------------------------------------------------- diff --git a/doc/queue_parameters.html b/doc/queue_parameters.html index f2af7598..0237a475 100644 --- a/doc/queue_parameters.html +++ b/doc/queue_parameters.html @@ -16,7 +16,14 @@ default values will be used. Thus, the default ruleset has only the default main queues are not set up by default.</p> <ul> <li><strong>queue.filename</strong> name</li> - <li><strong>queue.size</strong> number</li> + <li><strong>queue.size</strong> number <br> + This is the maximum size of the queue in number of messages. + Note that setting the queue size to very small values (roughly + below 100 messages) is not supported and can lead to + unpredictable results.<br> + For more information on the current status of this restriction + see the <a href="http://www.rsyslog.com/lower-bound-for-queue-sizes/">rsyslog + FAQ: "lower bound for queue sizes"</a>.</li> <li><strong>queue.dequeuebatchsize</strong> number <br>default 16</li> <li><strong>queue.maxdiskspace</strong> number</li> diff --git a/runtime/queue.c b/runtime/queue.c index 968c016e..e0f4481f 100644 --- a/runtime/queue.c +++ b/runtime/queue.c @@ -2106,16 +2106,24 @@ qqueueStart(qqueue_t *pThis) /* this is the ConstructionFinalizer */ break; } - if(pThis->iFullDlyMrk == -1) + 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); + } + + /* 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 () |