summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-06-09 09:24:25 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-06-09 09:24:25 +0200
commit0dfa4ad213abb67f63fd7a27263e7adeb8360792 (patch)
tree2443d951a483dcef64b924ed804a9a156064c4b4 /storage
parent28d081f87135f247eb2da828ff68e0b8a99efe63 (diff)
If ports change, request shutdown.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanager.cpp18
-rw-r--r--storage/src/vespa/storage/storageserver/fnetlistener.cpp6
-rw-r--r--storage/src/vespa/storage/storageserver/fnetlistener.h1
3 files changed, 23 insertions, 2 deletions
diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.cpp b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
index f8bf16c7688..540bc2e5bc2 100644
--- a/storage/src/vespa/storage/storageserver/communicationmanager.cpp
+++ b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
@@ -10,11 +10,14 @@
#include <vespa/messagebus/rpcmessagebus.h>
#include <vespa/messagebus/emptyreply.h>
#include <vespa/vespalib/stllike/asciistream.h>
+#include <vespa/vespalib/util/stringfmt.h>
#include <vespa/vespalib/stllike/hash_map.hpp>
#include <vespa/log/bufferedlogger.h>
LOG_SETUP(".communication.manager");
+using vespalib::make_string;
+
namespace storage {
PriorityQueue::PriorityQueue() :
@@ -370,12 +373,23 @@ CommunicationManager::configureMessageBusLimits(
: cfg.mbusContentNodeMaxPendingSize);
}
-void CommunicationManager::configure(
- std::unique_ptr<CommunicationManagerConfig> config)
+void CommunicationManager::configure(std::unique_ptr<CommunicationManagerConfig> config)
{
// Only allow dynamic (live) reconfiguration of message bus limits.
if (_mbus.get()) {
configureMessageBusLimits(*config);
+ if (_mbus->getRPCNetwork().getPort() != config->mbusport) {
+ auto m = make_string("mbus port changed from %d to %d. Will conduct a quick, but controlled restart.",
+ _mbus->getRPCNetwork().getPort(), config->mbusport);
+ LOG(warning, "%s", m.c_str());
+ _component.requestShutdown(m);
+ }
+ if (_listener->getListenPort() != config->rpcport) {
+ auto m = make_string("mbus port changed from %d to %d. Will conduct a quick, but controlled restart.",
+ _listener->getListenPort(), config->rpcport);
+ LOG(warning, "%s", m.c_str());
+ _component.requestShutdown(m);
+ }
return;
};
diff --git a/storage/src/vespa/storage/storageserver/fnetlistener.cpp b/storage/src/vespa/storage/storageserver/fnetlistener.cpp
index 0572d17af4c..bcd98effd60 100644
--- a/storage/src/vespa/storage/storageserver/fnetlistener.cpp
+++ b/storage/src/vespa/storage/storageserver/fnetlistener.cpp
@@ -36,6 +36,12 @@ FNetListener::~FNetListener()
}
}
+int
+FNetListener::getListenPort() const
+{
+ return _orb->GetListenPort();
+}
+
void
FNetListener::registerHandle(const vespalib::stringref & handle) {
_slobrokRegister.registerName(handle);
diff --git a/storage/src/vespa/storage/storageserver/fnetlistener.h b/storage/src/vespa/storage/storageserver/fnetlistener.h
index 781f818b673..ecbfb0ce9d9 100644
--- a/storage/src/vespa/storage/storageserver/fnetlistener.h
+++ b/storage/src/vespa/storage/storageserver/fnetlistener.h
@@ -22,6 +22,7 @@ public:
void registerHandle(const vespalib::stringref & handle);
void close();
+ int getListenPort() const;
// Used by unit tests.
bool serviceExists(const vespalib::stringref & connectionSpec);