--TEST-- Retryable reads: executeQuery is retried once --SKIPIF-- --FILE-- getCommandName()); } public function commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event): void { } public function commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event): void { } } $manager = create_test_manager(URI, ['retryReads' => true]); // Select a specific server for future operations to avoid mongos switching in sharded clusters $server = $manager->selectServer(new \MongoDB\Driver\ReadPreference('primary')); $bulk = new MongoDB\Driver\BulkWrite; $bulk->insert(['x' => 1]); $bulk->insert(['x' => 2]); $server->executeBulkWrite(NS, $bulk); configureTargetedFailPoint($server, 'failCommand', ['times' => 1], ['failCommands' => ['find'], 'closeConnection' => true]); $observer = new Observer; MongoDB\Driver\Monitoring\addSubscriber($observer); $cursor = $server->executeQuery(NS, new \MongoDB\Driver\Query(['x' => 1])); var_dump(iterator_count($cursor)); MongoDB\Driver\Monitoring\removeSubscriber($observer); ?> ===DONE=== --EXPECT-- Command started: find Command started: find int(1) ===DONE===