diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-01-29 11:40:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-29 11:40:10 +0100 |
commit | cbe4909b5d23dcee552d6777733387966053d25a (patch) | |
tree | 568d7725f7822989f388d775398936e106260dd5 /slobrok/src | |
parent | 1892897a2ab3e543d0f6511436e4764269d38d50 (diff) | |
parent | ea22e1cc3c456936d4b2fc5a470ec7957d57c0f4 (diff) |
Merge pull request #25777 from vespa-engine/arnej/avoid-silly-warning
Arnej/avoid warning
Diffstat (limited to 'slobrok/src')
-rw-r--r-- | slobrok/src/tests/backoff/testbackoff.cpp | 15 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/backoff.cpp | 6 |
2 files changed, 16 insertions, 5 deletions
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()); 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 <vespa/vespalib/util/signalhandler.h> 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; |