MongoCursorException ' не удалось получить заголовок ответа '

Я разрабатываю веб-сайт с использованием PHP и mongodb. Я получаю доступ к mongodb с помощью PECL-mongo , и меня это раздражает. Время от времени я получаю подобное сообщение об ошибке (я анонимизировал пути)

Fatal error: Uncaught exception 'MongoCursorException' with message 'couldn't get response header' in
    /PATH/index.php:38 Stack trace: #0 
    /PATH/index.php(38): MongoCursor->rewind() #1 
    /PATH/template.inc(29): get_sidebar() #2 
    /PATH/index.php(13): 
    require_once('PATH/...') #3 {main} thrown in PATH/index.php on line 38

Согласно документации, это означает:

Драйвер не может получить заголовок ответа из базы данных, поэтому он сдаться. Проверьте, работает ли база данных и сеть подключен и попробуйте запрос еще раз.

Но я знаю , что база данных активна, потому что я делаю это локально на своей машине через loopback. Нет связи с внешним миром.

Простая попытка снова часто срабатывает. Возможно, это ошибка в драйвере PHP для mongo? Может быть, это проблема "неправильной компиляции" (я скомпилировал из исходного кода, но с очень мягкими флагами, -march = native -O2 )?

Кто-нибудь видел это раньше?

Обыскивая, я вижу только ссылки на какую-то дурацкую игру в facebook с той же ошибкой.

РЕДАКТИРОВАТЬ : Я только что понизил версию своего драйвера PECL до версии 1.1.4 и до сих пор , проблема, похоже, исчезла. Так что это может быть просто ошибка в серии 1.2.x. Если бы кто-нибудь мог пролить свет на это, это было бы здорово.

РЕДАКТИРОВАТЬ : Я не делаю здесь ничего сложного, код, в котором возникает проблема, буквально выглядит так:

$m = new Mongo();
$collection = $m->my_db->collection;
$results = $collection->find(array("favorite"=>true))->limit(5);

6
задан Evan Teran 30 July 2011 в 00:55
поделиться