summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-11-25 15:12:43 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2022-11-25 15:12:43 +0000
commit553b2f5f0ac43417fb0158a964d02784904bb1f8 (patch)
tree0aa83fde0fe2a7498e436a1a8f859739578b3bb5 /storage
parent2edd631a79e96791d9638f7b3a80b15c9f94d1f7 (diff)
Make internal cluster/node state propagation noexcept
It is not well defined what to do if an implementation of the propagation callback throws, so make it noexcept to core the process if it does happen.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/tests/storageserver/statemanagertest.cpp2
-rw-r--r--storage/src/vespa/storage/common/nodestateupdater.h4
-rw-r--r--storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.cpp2
-rw-r--r--storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.h2
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp2
-rw-r--r--storage/src/vespa/storage/persistence/filestorage/filestormanager.h2
-rw-r--r--storage/src/vespa/storage/storageserver/bouncer.cpp2
-rw-r--r--storage/src/vespa/storage/storageserver/bouncer.h2
8 files changed, 9 insertions, 9 deletions
diff --git a/storage/src/tests/storageserver/statemanagertest.cpp b/storage/src/tests/storageserver/statemanagertest.cpp
index 5a43f04072d..d7fc04ebe8c 100644
--- a/storage/src/tests/storageserver/statemanagertest.cpp
+++ b/storage/src/tests/storageserver/statemanagertest.cpp
@@ -163,7 +163,7 @@ struct MyStateListener : public StateListener {
: updater(upd), current(*updater.getReportedNodeState()) {}
~MyStateListener() override = default;
- void handleNewState() override {
+ void handleNewState() noexcept override {
ost << current << " -> ";
current = *updater.getReportedNodeState();
ost << current << "\n";
diff --git a/storage/src/vespa/storage/common/nodestateupdater.h b/storage/src/vespa/storage/common/nodestateupdater.h
index dd9840b22f6..8d378e1ecd5 100644
--- a/storage/src/vespa/storage/common/nodestateupdater.h
+++ b/storage/src/vespa/storage/common/nodestateupdater.h
@@ -31,8 +31,8 @@ namespace storage {
namespace lib { class ClusterStateBundle; }
struct StateListener {
- virtual ~StateListener() {}
- virtual void handleNewState() = 0;
+ virtual ~StateListener() = default;
+ virtual void handleNewState() noexcept = 0;
};
struct NodeStateUpdater {
diff --git a/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.cpp b/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.cpp
index 2c0fc771ee7..24f031cf49c 100644
--- a/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.cpp
+++ b/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.cpp
@@ -15,7 +15,7 @@ DistributorComponentRegisterImpl::DistributorComponentRegisterImpl()
DistributorComponentRegisterImpl::~DistributorComponentRegisterImpl() = default;
void
-DistributorComponentRegisterImpl::handleNewState()
+DistributorComponentRegisterImpl::handleNewState() noexcept
{
auto clusterStateBundle = getNodeStateUpdater().getClusterStateBundle();
_clusterState = std::make_shared<lib::ClusterState>(*clusterStateBundle->getBaselineClusterState());
diff --git a/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.h b/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.h
index 5a85bc3f4ee..57b5a5cbce8 100644
--- a/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.h
+++ b/storage/src/vespa/storage/frameworkimpl/component/distributorcomponentregisterimpl.h
@@ -42,7 +42,7 @@ public:
void setDistributorConfig(const DistributorConfig&);
void setVisitorConfig(const VisitorConfig&);
private:
- void handleNewState() override;
+ void handleNewState() noexcept override;
void setNodeStateUpdater(NodeStateUpdater& updater) override;
};
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
index 314836384ce..6d69a29fc6e 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
+++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.cpp
@@ -999,7 +999,7 @@ FileStorManager::propagateClusterStates()
}
void
-FileStorManager::handleNewState()
+FileStorManager::handleNewState() noexcept
{
propagateClusterStates();
//TODO: Don't update if it isn't necessary (distributor-only change)
diff --git a/storage/src/vespa/storage/persistence/filestorage/filestormanager.h b/storage/src/vespa/storage/persistence/filestorage/filestormanager.h
index 6820ed6f451..381774e0dd4 100644
--- a/storage/src/vespa/storage/persistence/filestorage/filestormanager.h
+++ b/storage/src/vespa/storage/persistence/filestorage/filestormanager.h
@@ -101,7 +101,7 @@ public:
}
ProviderErrorWrapper& error_wrapper() noexcept;
- void handleNewState() override;
+ void handleNewState() noexcept override;
// Must be called exactly once at startup _before_ storage chain is opened.
// This function expects that no external messages may arrive prior to, or
diff --git a/storage/src/vespa/storage/storageserver/bouncer.cpp b/storage/src/vespa/storage/storageserver/bouncer.cpp
index 313773bc5e8..0324891243b 100644
--- a/storage/src/vespa/storage/storageserver/bouncer.cpp
+++ b/storage/src/vespa/storage/storageserver/bouncer.cpp
@@ -349,7 +349,7 @@ deriveNodeState(const lib::NodeState &reportedNodeState,
}
void
-Bouncer::handleNewState()
+Bouncer::handleNewState() noexcept
{
std::lock_guard lock(_lock);
const auto reportedNodeState = *_component.getStateUpdater().getReportedNodeState();
diff --git a/storage/src/vespa/storage/storageserver/bouncer.h b/storage/src/vespa/storage/storageserver/bouncer.h
index 55fb386a37e..95f263d3f03 100644
--- a/storage/src/vespa/storage/storageserver/bouncer.h
+++ b/storage/src/vespa/storage/storageserver/bouncer.h
@@ -74,7 +74,7 @@ private:
*/
uint64_t extractMutationTimestampIfAny(const api::StorageMessage& msg);
bool onDown(const std::shared_ptr<api::StorageMessage>&) override;
- void handleNewState() override;
+ void handleNewState() noexcept override;
const lib::NodeState &getDerivedNodeState(document::BucketSpace bucketSpace) const;
void append_node_identity(std::ostream& target_stream) const;
};