From 13c4106563e95983650c2796df271eafc7598c3d Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Sat, 28 Jan 2023 15:22:41 +0000 Subject: reduce warnings during normal shutdown --- slobrok/src/vespa/slobrok/backoff.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'slobrok') diff --git a/slobrok/src/vespa/slobrok/backoff.cpp b/slobrok/src/vespa/slobrok/backoff.cpp index 3c433d85862..5ad7d167fca 100644 --- a/slobrok/src/vespa/slobrok/backoff.cpp +++ b/slobrok/src/vespa/slobrok/backoff.cpp @@ -1,12 +1,13 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "backoff.h" +#include namespace slobrok::api { namespace { constexpr size_t num_warn_intervals = 5; -const double warn_intervals[num_warn_intervals] = { 0.0, 10.0, 60.0, 600.0, 3600.0 }; +const double warn_intervals[num_warn_intervals] = { 1.0, 10.0, 60.0, 600.0, 3600.0 }; } BackOff::BackOff() { reset(); } @@ -26,6 +27,9 @@ double BackOff::get() { } bool BackOff::shouldWarn() { + if (vespalib::SignalHandler::TERM.check()) { + return false; + } if (_since_last_warn >= warn_intervals[_nextwarn_idx]) { if (_nextwarn_idx + 1 < num_warn_intervals) { ++_nextwarn_idx; -- cgit v1.2.3 From ea22e1cc3c456936d4b2fc5a470ec7957d57c0f4 Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Sun, 29 Jan 2023 09:03:27 +0000 Subject: update unit test to track adjusted timing --- slobrok/src/tests/backoff/testbackoff.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'slobrok') diff --git a/slobrok/src/tests/backoff/testbackoff.cpp b/slobrok/src/tests/backoff/testbackoff.cpp index 8125d8625a8..50d68b72adf 100644 --- a/slobrok/src/tests/backoff/testbackoff.cpp +++ b/slobrok/src/tests/backoff/testbackoff.cpp @@ -17,9 +17,14 @@ Test::Main() TEST_INIT("backoff_test"); BackOff one; - EXPECT_TRUE(one.shouldWarn()); + EXPECT_FALSE(one.shouldWarn()); EXPECT_EQUAL(0.500, one.get()); - for (int i = 2; i < 41; i++) { + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(1.000, one.get()); + EXPECT_FALSE(one.shouldWarn()); + EXPECT_EQUAL(1.500, one.get()); + EXPECT_TRUE(one.shouldWarn()); + for (int i = 4; i < 41; i++) { EXPECT_EQUAL(0.5 * i, one.get()); } for (int i = 1; i < 1000; i++) { @@ -28,22 +33,24 @@ Test::Main() TEST_FLUSH(); BackOff two; + EXPECT_FALSE(two.shouldWarn()); for (int i = 1; i < 50; i++) { double expect = 0.5 * i; if (expect > 20.0) expect = 20.0; EXPECT_EQUAL(expect, two.get()); - if (i == 1 || i == 7 || i == 18) { + if (i == 3 || i == 8 || i == 18) { EXPECT_TRUE(two.shouldWarn()); } else { EXPECT_FALSE(two.shouldWarn()); } } two.reset(); + EXPECT_FALSE(two.shouldWarn()); for (int i = 1; i < 50; i++) { double expect = 0.5 * i; if (expect > 20.0) expect = 20.0; EXPECT_EQUAL(expect, two.get()); - if (i == 1 || i == 7 || i == 18) { + if (i == 3 || i == 8 || i == 18) { EXPECT_TRUE(two.shouldWarn()); } else { EXPECT_FALSE(two.shouldWarn()); -- cgit v1.2.3