PHPとmongodbを使用してWebサイトを開発しています。PECL-mongoでmongodbにアクセスしましたが、煩わしい思いをしました。時々、このようなエラーが発生します(パスを匿名化しました)
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の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);