diff options
author | Ben Caimano <ben.caimano@10gen.com> | 2020-09-21 18:59:00 +0000 |
---|---|---|
committer | Ben Caimano <ben.caimano@10gen.com> | 2020-09-22 16:02:52 +0000 |
commit | efb3f7689e9f6c54f039dab068c4c279cf87ac99 (patch) | |
tree | 45f737b73f841eb4dd2c251765d05b891e1f67c9 | |
parent | 66b412e1658a3db4935385147b0048a37b39193e (diff) | |
download | mongo-efb3f7689e9f6c54f039dab068c4c279cf87ac99.tar.gz |
SERVER-51080 Fix mongobridge startup ordering
-rw-r--r-- | src/mongo/tools/bridge.cpp | 7 | ||||
-rw-r--r-- | src/mongo/transport/transport_layer_asio.cpp | 5 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/mongo/tools/bridge.cpp b/src/mongo/tools/bridge.cpp index 1c2f7d46bc9..82489a61492 100644 --- a/src/mongo/tools/bridge.cpp +++ b/src/mongo/tools/bridge.cpp @@ -485,9 +485,6 @@ int bridgeMain(int argc, char** argv) { setGlobalServiceContext(ServiceContext::make()); auto serviceContext = getGlobalServiceContext(); serviceContext->setServiceEntryPoint(std::make_unique<ServiceEntryPointBridge>(serviceContext)); - if (auto status = serviceContext->getServiceEntryPoint()->start(); !status.isOK()) { - LOGV2(4907203, "Error starting service entry point", "error"_attr = status); - } transport::TransportLayerASIO::Options opts; opts.ipList.emplace_back("0.0.0.0"); @@ -501,6 +498,10 @@ int bridgeMain(int argc, char** argv) { return EXIT_NET_ERROR; } + if (auto status = serviceContext->getServiceEntryPoint()->start(); !status.isOK()) { + LOGV2(4907203, "Error starting service entry point", "error"_attr = status); + } + if (auto status = tl->start(); !status.isOK()) { LOGV2(22923, "Error starting transport layer", "error"_attr = status); return EXIT_NET_ERROR; diff --git a/src/mongo/transport/transport_layer_asio.cpp b/src/mongo/transport/transport_layer_asio.cpp index 3529f7f510a..39fcf1d1479 100644 --- a/src/mongo/transport/transport_layer_asio.cpp +++ b/src/mongo/transport/transport_layer_asio.cpp @@ -265,7 +265,10 @@ TransportLayerASIO::TransportLayerASIO(const TransportLayerASIO::Options& opts, _egressReactor(std::make_shared<ASIOReactor>()), _acceptorReactor(std::make_shared<ASIOReactor>()), _sep(sep), - _listenerOptions(opts) {} + _listenerOptions(opts) { + invariant(!opts.isIngress() || _sep, + "TransportLayers with ingress must have a ServiceEntryPoint."); +} TransportLayerASIO::~TransportLayerASIO() = default; |