@@ -8,9 +8,9 @@ MongoDB\Driver\Cursor destruct should kill a live cursor
88<?php
99require_once __DIR__ . "/../utils/basic.inc " ;
1010
11- function getNumOpenCursors (MongoDB \Driver \Manager $ manager )
11+ function getNumOpenCursors (MongoDB \Driver \Server $ server )
1212{
13- $ cursor = $ manager ->executeCommand (DATABASE_NAME , new MongoDB \Driver \Command (array ('serverStatus ' => 1 )));
13+ $ cursor = $ server ->executeCommand (DATABASE_NAME , new MongoDB \Driver \Command (array ('serverStatus ' => 1 )));
1414 $ result = current ($ cursor ->toArray ());
1515 if (isset ($ result ->metrics ->cursor ->open ->total )) {
1616 return $ result ->metrics ->cursor ->open ->total ;
@@ -25,22 +25,25 @@ function getNumOpenCursors(MongoDB\Driver\Manager $manager)
2525
2626$ manager = new MongoDB \Driver \Manager (URI );
2727
28+ // Select a specific server for future operations to avoid mongos switching in sharded clusters
29+ $ server = $ manager ->selectServer (new \MongoDB \Driver \ReadPreference ('primary ' ));
30+
2831$ bulk = new MongoDB \Driver \BulkWrite ();
2932$ bulk ->insert (array ('_id ' => 1 ));
3033$ bulk ->insert (array ('_id ' => 2 ));
3134$ bulk ->insert (array ('_id ' => 3 ));
32- $ manager ->executeBulkWrite (NS , $ bulk );
35+ $ server ->executeBulkWrite (NS , $ bulk );
3336
34- $ numOpenCursorsBeforeQuery = getNumOpenCursors ($ manager );
37+ $ numOpenCursorsBeforeQuery = getNumOpenCursors ($ server );
3538
36- $ cursor = $ manager ->executeQuery (NS , new MongoDB \Driver \Query (array (), array ('batchSize ' => 2 )));
39+ $ cursor = $ server ->executeQuery (NS , new MongoDB \Driver \Query (array (), array ('batchSize ' => 2 )));
3740
3841var_dump ($ cursor ->isDead ());
39- var_dump (getNumOpenCursors ($ manager ) == $ numOpenCursorsBeforeQuery + 1 );
42+ var_dump (getNumOpenCursors ($ server ) == $ numOpenCursorsBeforeQuery + 1 );
4043
4144unset($ cursor );
4245
43- var_dump (getNumOpenCursors ($ manager ) == $ numOpenCursorsBeforeQuery );
46+ var_dump (getNumOpenCursors ($ server ) == $ numOpenCursorsBeforeQuery );
4447
4548?>
4649===DONE===
0 commit comments