fix: Introduce retry for transient errors from DB (#3167)

This commit is contained in:
Alex Kremer
2026-08-10 14:39:15 +01:00
committed by GitHub
parent f490117cfb
commit dbdbe4ea1f
27 changed files with 665 additions and 88 deletions

View File

@@ -239,7 +239,7 @@ public:
* @return The error message
*/
[[nodiscard]] char const*
what() const throw() override
what() const noexcept override
{
return msg_.c_str();
}
@@ -267,7 +267,7 @@ public:
* @return The error message
*/
[[nodiscard]] char const*
what() const throw() override
what() const noexcept override
{
return account_.c_str();
}

View File

@@ -178,8 +178,8 @@ public:
}
return Result{std::move(v)};
} catch (data::DatabaseTimeout const& t) {
LOG(log_.error()) << "Database timeout";
} catch (data::DatabaseError const& t) {
LOG(log_.error()) << "Database error: " << t.what();
notifyTooBusy();
return Result{Status{RippledError::RpcTooBusy}};
@@ -361,8 +361,8 @@ private:
}
return Result{std::move(v)};
} catch (data::DatabaseTimeout const& t) {
LOG(log_.error()) << "Database timeout";
} catch (data::DatabaseError const& t) {
LOG(log_.error()) << "Database error: " << t.what();
notifyTooBusy();
return Result{Status{RippledError::RpcTooBusy}};