mongodb/mongo-php-driver — pull request #700 by bjori (2014-05-09 21:05:37+00:00)
Title: Fixed PHP-874: New Replica Set connections hang when secondaries are cre...

...ating indexes during initialSync

After creating a connection the first thing we must do is do run isMaster().
We cannot run buildinfo or authentication or anything else. It must be isMaster().

This call to ismaster is to check what sort of node we are talking to, and make sure it is
actually a node we are allowed to talk to and can issue commands to (e.g. don't auth to
arbiter, don't send commands to STARTUP nodes, ....).

Unfortunately this means re-introducing the double isMaster() call, once for this sanity
checking and once more for replicaset topology discovery which is done in way different
place and sequence