diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-09-05 21:04:08 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-09-05 21:04:08 +0200 |
commit | cb2e7054e43ec84ea7181f67631602546f7cae33 (patch) | |
tree | de8015e7c6c9cb3aa914f7085b19db1999201045 /storage | |
parent | 8ae7332f3e4297121fb9f50972ded38ef94aa5ca (diff) |
WE must listen to everyone who wants to stop.
Diffstat (limited to 'storage')
-rw-r--r-- | storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp | 12 | ||||
-rw-r--r-- | storage/src/vespa/storage/storageserver/storagenode.cpp | 6 |
2 files changed, 10 insertions, 8 deletions
diff --git a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp index 55de1d9ee87..483cffaf751 100644 --- a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp +++ b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp @@ -56,7 +56,7 @@ void StatusWebServer::configure(std::unique_ptr<vespa::config::content::core::St int newPort = config->httpport; // If server is already running, ignore config updates that doesn't // alter port, or suggests random port. - if (_httpServer.get() != 0) { + if (_httpServer) { if (newPort == 0 || newPort == _port) return; } // Try to create new server before destroying old. @@ -88,21 +88,23 @@ void StatusWebServer::configure(std::unique_ptr<vespa::config::content::core::St if (!started) { std::ostringstream ost; ost << "Failed to start status HTTP server using port " << newPort << "."; - if (_httpServer.get() != 0) { + if (_httpServer) { ost << " Status server still running on port " << _port << " instead of suggested port " << newPort; } LOG(fatal, "%s.", ost.str().c_str()); _component->requestShutdown(ost.str()); + _httpServer.reset(); + return; } // Now that we know config update went well, update internal state _port = server->getListenPort(); LOG(config, "Status pages now available on port %u", _port); - if (_httpServer.get() != 0) { + if (_httpServer) { LOG(debug, "Shutting down old status server."); - _httpServer.reset(0); + _httpServer.reset(); LOG(debug, "Done shutting down old status server."); } - } else if (_httpServer.get() != 0) { + } else if (_httpServer) { LOG(info, "No longer running status server as negative port was given " "in config, indicating not to run a server."); } diff --git a/storage/src/vespa/storage/storageserver/storagenode.cpp b/storage/src/vespa/storage/storageserver/storagenode.cpp index 27f98b478ce..85f54431cfb 100644 --- a/storage/src/vespa/storage/storageserver/storagenode.cpp +++ b/storage/src/vespa/storage/storageserver/storagenode.cpp @@ -103,13 +103,13 @@ StorageNode::subscribeToConfigs() void StorageNode::initialize() { + _context.getComponentRegister().registerShutdownListener(*this); + // Fetch configs needed first. These functions will just grab the config // and store them away, while having the config lock. subscribeToConfigs(); - _context.getMemoryManager().setMaximumMemoryUsage( - _serverConfig->memorytouse); - _context.getComponentRegister().registerShutdownListener(*this); + _context.getMemoryManager().setMaximumMemoryUsage(_serverConfig->memorytouse); updateUpgradeFlag(*_clusterConfig); // First update some basics that doesn't depend on anything else to be |