Priority: Major - P3
Affects Version/s: None
Fix Version/s: None
Sprint:Platform 4 06/05/15, Platform 5 06/26/16
- Cluster with 1 or more replicasets and 3 config servers, all running on Windows.
- All MongoDB processes (mongoD, mongoS, config servers) are configured as Windows services. In addition, the services are setup with recovery actions that cause Windows to restart them on failure.
- mongoS and config servers run on different hosts.
- Hosts are restarted.
- mongoS Windows service starts before the config servers Windows services start.
- mongoS service stops because it can't connect to any config servers.
- However, Windows does NOT restart it - i.e., the recovery actions don't work.
I believe that the issue is caused by method initService() in ntservice.cpp unconditionally calling reportStatus(SERVICE_STOPPED) when the service callback method returns.
Here's a tentative fix: