diff options
author | Marri Devender Rao <devenrao@in.ibm.com> | 2017-08-06 05:42:52 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2017-08-16 21:09:34 +0000 |
commit | 7656fba39d7bef754ee38a1d9a7889e7d3309db4 (patch) | |
tree | dfe0e5619204b3674d57bd1f0a4691967b877c13 /log_manager.cpp | |
parent | cfd9a7dd2c3c17f38f71357a5abdbf3516318242 (diff) | |
download | phosphor-logging-7656fba39d7bef754ee38a1d9a7889e7d3309db4.tar.gz phosphor-logging-7656fba39d7bef754ee38a1d9a7889e7d3309db4.zip |
Implement a cap on the number of committed errors
Resolves openbmc/openbmc#1617
Change-Id: I5850e5addb723e6f5102eb4677bb365285c1a633
Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
Diffstat (limited to 'log_manager.cpp')
-rw-r--r-- | log_manager.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/log_manager.cpp b/log_manager.cpp index 6ae59fd..29c0ffe 100644 --- a/log_manager.cpp +++ b/log_manager.cpp @@ -26,6 +26,19 @@ namespace logging void Manager::commit(uint64_t transactionId, std::string errMsg) { + if (capped) + { + return; + } + if (entries.size() >= ERROR_CAP) + { + log<level::ERR>("Reached error cap, Ignoring error", + entry("SIZE=%d", entries.size()), + entry("ERROR_CAP=%d", ERROR_CAP)); + capped = true; + return; + } + constexpr const auto transactionIdVar = "TRANSACTION_ID"; // Length of 'TRANSACTION_ID' string. constexpr const auto transactionIdVarSize = strlen(transactionIdVar); @@ -194,6 +207,11 @@ void Manager::erase(uint32_t entryId) entries.erase(entry); } + + if (entries.size() < ERROR_CAP) + { + capped = false; + } } void Manager::restore() |