summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-01-04 21:20:46 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-01-04 21:20:46 +0000
commitb4b3e77498d6c9aa610dd1a58ef2e23b077a1b30 (patch)
tree686a8002f1c04c1661277a1dd3b3e8873849b293 /storage
parent8011defcea5a8e09dcc437e56db1c59c3d14f72d (diff)
Quck bail out when port can not be listened to.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp
index 1d3827d9971..2f6346c91b9 100644
--- a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp
+++ b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp
@@ -55,8 +55,14 @@ void StatusWebServer::configure(std::unique_ptr<vespa::config::content::core::St
std::unique_ptr<WebServer> server;
// Negative port number means don't run the web server
if (newPort >= 0) {
- server.reset(new WebServer(*this, newPort));
- // Now that we know config update went well, update internal state
+ try {
+ server.reset(new WebServer(*this, newPort));
+ } catch (const vespalib::PortListenException & e) {
+ LOG(error, "Failed listening to network port(%d) with protocol(%s): '%s', giving up and restarting.",
+ e.get_port(), e.get_protocol().c_str(), e.what());
+ std::quick_exit(17);
+ }
+ // 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) {