]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
taskprocessor.c: Change when high water warning logged. 20/4720/1
authorRichard Mudgett <rmudgett@digium.com>
Sat, 14 Jan 2017 03:23:49 +0000 (21:23 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Sat, 14 Jan 2017 03:30:53 +0000 (21:30 -0600)
The task processor queue reached X scheduled tasks message was originally
intended to get logged only once per task processor to prevent spamming
the log.  This is no longer necessary since high and low water thresholds
can better control when the message is logged.

It is beneficial to generate the warning each time a task processor
reaches the high water level because PJSIP stops processing new requests
while any high water alert is active.  Without this change you would have
to enable at least debug level 3 logging to know about a repeated alert
trigger.

* Made generate the warning message whenever a task is pushed into the
task processor that triggers the high water alert.

* Appended 'again' to the warning for a repeated high water alert trigger.

Change-Id: Iabf75a004f7edaf1e5e8c323099418e667cac999

main/taskprocessor.c

index bbf282c27a5ac1bf4ab06b493d51d886b5e98981..f4ebab3c03d2f21cebfd49115d9801d8c51ebe4b 100644 (file)
@@ -884,12 +884,10 @@ static int taskprocessor_push(struct ast_taskprocessor *tps, struct tps_task *t)
        previous_size = tps->tps_queue_size++;
 
        if (tps->tps_queue_high <= tps->tps_queue_size) {
-               if (!tps->high_water_warned) {
-                       tps->high_water_warned = 1;
-                       ast_log(LOG_WARNING, "The '%s' task processor queue reached %ld scheduled tasks.\n",
-                               tps->name, tps->tps_queue_size);
-               }
                if (!tps->high_water_alert) {
+                       ast_log(LOG_WARNING, "The '%s' task processor queue reached %ld scheduled tasks%s.\n",
+                               tps->name, tps->tps_queue_size, tps->high_water_warned ? " again" : "");
+                       tps->high_water_warned = 1;
                        tps->high_water_alert = 1;
                        tps_alert_add(tps, +1);
                }