1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
--TEST--
Test for PHP-1036: Segmentation Fault when querying large collection and the working set is not loaded (non-streams)
--SKIPIF--
<?php require_once "tests/utils/standalone.inc" ?>
<?php if (MONGO_STREAMS) { echo "skip This test requires non-stream connections"; } ?>
<?php
try {
$host = MongoShellServer::getStandaloneInfo();
$mc = new MongoClient($host, array("socketTimeoutMS" => 1));
} catch(Exception $e) {
die("skip Can't connect to the server fast enough\n");
}
?>
--FILE--
<?php
require_once "tests/utils/server.inc";
$host = MongoShellServer::getStandaloneInfo();
$mc = new MongoClient($host);
$db = $mc->selectDb(dbname());
$collection = $mc->selectCollection(dbname(), collname(__FILE__));
$collection->drop();
for($i=0; $i<1000; ++$i) {
$collection->insert(array("bunch" => "of", "documents" => $i));
}
$mc->close();
$mc = new MongoClient($host, array("socketTimeoutMS" => 1));
$db = $mc->selectDb(dbname());
$collection = $mc->selectCollection(dbname(), collname(__FILE__));
try {
$retval = $collection->distinct("documents");
echo "hmh. you have to fast server!\n";
var_dump(count($retval));
} catch(MongoCursorTimeoutException $e) {
echo $e->getMessage(), "\n";
} catch(Exception $e) {
/* Should have thrown cursortimeout exception.. :( */
var_dump(get_class($e));
echo $e->getMessage(), "\n";
}
echo "I'm alive!\n";
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
%s:%d: Timed out waiting for header data
I'm alive!
===DONE===
|