diff options
author | Adam Midvidy <amidvidy@gmail.com> | 2015-10-01 16:58:51 -0400 |
---|---|---|
committer | Adam Midvidy <amidvidy@gmail.com> | 2015-10-02 09:14:24 -0400 |
commit | 466f05960f115b0bb5e565d88cedbed9d7b47328 (patch) | |
tree | 1303778a8e4c6e31c28790b07a0cd34691e0c1cc /src | |
parent | ef2ed659fb1e27189ac561233abb20298ee931db (diff) | |
download | mongo-466f05960f115b0bb5e565d88cedbed9d7b47328.tar.gz |
SERVER-20689 improve diagnostics in the case that we leak an exception from an IO worker thread
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/executor/network_interface_asio.cpp | 10 |
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); } |