...
BugZero found this defect 2727 days ago.
As part of the changes to make collection metadata refresh asynchronous, it is possible that the CatalogCache::getCollectionRoutingInfo call can throw on interruption. When MetadataManager::finishRecovery gets this exception, it will unwind through the scoped guard block and will propagate the exception to the balancer main thread, which is not prepared to handle it.
xgen-internal-githook commented on Wed, 17 May 2017 13:08:44 +0000: Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'} Message: SERVER-29164 Ensure CatalogCache::getCollectionRoutingInfo does not throw (cherry picked from commit ff3177abf366f0699629afb1b20fb72c6c79a6e4) Branch: v3.4 https://github.com/mongodb/mongo/commit/4dbab2657ec28f71da0e97c2d2f9be8df4e54e70 xgen-internal-githook commented on Sat, 13 May 2017 13:31:15 +0000: Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'} Message: SERVER-29164 Ensure CatalogCache::getCollectionRoutingInfo does not throw Branch: master https://github.com/mongodb/mongo/commit/ff3177abf366f0699629afb1b20fb72c6c79a6e4