summaryrefslogtreecommitdiff
path: root/src/mongo/embedded
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2018-06-29 10:21:36 -0400
committerHenrik Edin <henrik.edin@mongodb.com>2018-07-02 12:29:06 -0400
commit5efeeb73b16e50cf0c010b09a1a83f70e27d38fa (patch)
treef2d09ebc55fbfd5bf8fc69ceb1b077135d57cdae /src/mongo/embedded
parent53a0c9cba92239d3236016a1d1bf486e95ce860c (diff)
downloadmongo-5efeeb73b16e50cf0c010b09a1a83f70e27d38fa.tar.gz
SERVER-35908 Shutdown the service entry point before embedded in mongoed to make sure there's no clients left.
(cherry picked from commit bed5e03f5462243ca3159d94172aca9adac3294a)
Diffstat (limited to 'src/mongo/embedded')
-rw-r--r--src/mongo/embedded/mongoed_main.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mongo/embedded/mongoed_main.cpp b/src/mongo/embedded/mongoed_main.cpp
index 30d010f8e20..c43e95e09ef 100644
--- a/src/mongo/embedded/mongoed_main.cpp
+++ b/src/mongo/embedded/mongoed_main.cpp
@@ -85,7 +85,15 @@ int mongoedMain(int argc, char* argv[], char** envp) {
tl->shutdown();
}
- embedded::shutdown(serviceContext);
+ if (auto sep = serviceContext->getServiceEntryPoint()) {
+ if (sep->shutdown(Seconds(10))) {
+ embedded::shutdown(serviceContext);
+ } else {
+ log(logger::LogComponent::kNetwork) << "Failed to shutdown service entry point "
+ "within timelimit, skipping embedded "
+ "shutdown.";
+ }
+ }
});
setupSignalHandlers();