summaryrefslogtreecommitdiff
path: root/src/mongo/executor/network_interface_asio.cpp
diff options
context:
space:
mode:
authorAdam Midvidy <amidvidy@gmail.com>2015-10-01 16:58:51 -0400
committerAdam Midvidy <amidvidy@gmail.com>2015-10-02 09:14:24 -0400
commit466f05960f115b0bb5e565d88cedbed9d7b47328 (patch)
tree1303778a8e4c6e31c28790b07a0cd34691e0c1cc /src/mongo/executor/network_interface_asio.cpp
parentef2ed659fb1e27189ac561233abb20298ee931db (diff)
downloadmongo-466f05960f115b0bb5e565d88cedbed9d7b47328.tar.gz
SERVER-20689 improve diagnostics in the case that we leak an exception from an IO worker thread
Diffstat (limited to 'src/mongo/executor/network_interface_asio.cpp')
-rw-r--r--src/mongo/executor/network_interface_asio.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mongo/executor/network_interface_asio.cpp b/src/mongo/executor/network_interface_asio.cpp
index c8e8c129008..3de99bfaf1c 100644
--- a/src/mongo/executor/network_interface_asio.cpp
+++ b/src/mongo/executor/network_interface_asio.cpp
@@ -95,8 +95,14 @@ std::string NetworkInterfaceASIO::getHostName() {
void NetworkInterfaceASIO::startup() {
_serviceRunner = stdx::thread([this]() {
- asio::io_service::work work(_io_service);
- _io_service.run();
+ try {
+ asio::io_service::work work(_io_service);
+ _io_service.run();
+ } catch (...) {
+ severe() << "Uncaught exception in NetworkInterfaceASIO IO worker thread of type: "
+ << exceptionToStatus();
+ fassertFailed(28820);
+ }
});
_state.store(State::kRunning);
}