From 887024d83d4fbfa6461ea8d605d100dacc8b3158 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Fri, 18 Mar 2011 21:46:20 +0000 Subject: QPID-3154: Fix qpidd late/overran warnings. Warnings for late-and-overrun tasks were not being correctly reported. Lateness for overrun tasks below the late threshold were not being reported. git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.10@1083082 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/sys/Timer.cpp | 10 ++++++---- qpid/cpp/src/qpid/sys/TimerWarnings.cpp | 12 +++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/qpid/cpp/src/qpid/sys/Timer.cpp b/qpid/cpp/src/qpid/sys/Timer.cpp index a97ccd1bd1..85e410860d 100644 --- a/qpid/cpp/src/qpid/sys/Timer.cpp +++ b/qpid/cpp/src/qpid/sys/Timer.cpp @@ -131,12 +131,14 @@ void Timer::run() bool warningsEnabled; QPID_LOG_TEST(warning, warningsEnabled); if (warningsEnabled) { - if (delay > late && overrun > overran) - warn.lateAndOverran(t->name, delay, overrun, Duration(start, end)); + if (overrun > overran) { + if (delay > overran) // if delay is significant to an overrun. + warn.lateAndOverran(t->name, delay, overrun, Duration(start, end)); + else + warn.overran(t->name, overrun, Duration(start, end)); + } else if (delay > late) warn.late(t->name, delay); - else if (overrun > overran) - warn.overran(t->name, overrun, Duration(start, end)); } continue; } else { diff --git a/qpid/cpp/src/qpid/sys/TimerWarnings.cpp b/qpid/cpp/src/qpid/sys/TimerWarnings.cpp index 48a56eb472..87c3169456 100644 --- a/qpid/cpp/src/qpid/sys/TimerWarnings.cpp +++ b/qpid/cpp/src/qpid/sys/TimerWarnings.cpp @@ -59,17 +59,19 @@ void TimerWarnings::log() { QPID_LOG(warning, task << " task late " << stats.lateDelay.count << " times by " << stats.lateDelay.average()/TIME_MSEC << "ms on average."); + if (stats.overranOverrun.count) QPID_LOG(warning, task << " task overran " << stats.overranOverrun.count << " times by " << stats.overranOverrun.average()/TIME_MSEC << "ms (taking " << stats.overranTime.average() << "ns) on average."); - if (stats.lateAndOverranDelay.count) - QPID_LOG(warning, task << " task overran " - << stats.overranOverrun.count << " times by " - << stats.overranOverrun.average()/TIME_MSEC << "ms (taking " - << stats.overranTime.average() << "ns) on average."); + if (stats.lateAndOverranOverrun.count) + QPID_LOG(warning, task << " task late and overran " + << stats.lateAndOverranOverrun.count << " times: late " + << stats.lateAndOverranDelay.average()/TIME_MSEC << "ms, overran " + << stats.lateAndOverranOverrun.average()/TIME_MSEC << "ms (taking " + << stats.lateAndOverranTime.average() << "ns) on average."); } nextReport = AbsTime(now(), interval); -- cgit v1.2.1