MongoCursorException «не удалось получить заголовок ответа» - PullRequest
6 голосов
/ 29 июля 2011

Я занимаюсь разработкой сайта с использованием 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

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

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

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

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

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

При поиске я вижу только ссылки на какую-то глупую игру на Facebook с такой же ошибкой.

EDIT : Я только что понизил свой драйвер PECL до версии 1.1.4 и до сих пор , проблема, кажется, ушла. Так что это может быть просто ошибкой в ​​серии 1.2.x. Если бы кто-нибудь мог пролить на него свет, это было бы здорово.

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

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

1 Ответ

1 голос
/ 04 апреля 2012

Я решил эту проблему с помощью новой версии mogodb.dll, которую вы видите http://www.mongodb.org/display/DOCS/PHP+Language+Center

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