Hi all, we encountered reconnection problems during failover scenarios in our MongoDB cluster. Investigation showed that the version of the Ruby driver in use by Logstash was very old and not certified to be compatible with newer versions of MongoDB. The connection monitoring threads in the driver were not able to update server state changes and eventually crashing Logstash with NoServerAvailable error.
After upgrading the driver version we observed that failover was still not handled correctly. Some fixes in serialization code had to be made in order to be compatible with the latest BSON API, allowing the driver to read server status and reconnect as required.
I've opened a pull request here with fixes for these issues: https://github.com/logstash-plugins/logstash-output-mongodb/pull/52