无法在中断系统调用时连接到MongoDB服务器

时间:2012-09-17 18:06:45

标签: php mongodb centos kohana task-queue

我正在运行Rackspace云服务器CentOs + apache2 + php 5.4 + pcntl模块,其中包含一个基本的Kohana php框架,其中包含一个mongoDb任务模块,用于分析子进程。如果我尝试同时运行多于1个子任务进程,则会出现以下错误:

Unable to connect to MongoDB server at Interrupted system call

根据mongoDb任务模块作者,该问题与代码无关,但可能与mongoDb驱动程序或服务器有关。

有谁知道错误意味着什么和/或可能是什么原因?

完整错误输出:

  

0 /var/www/.../modules/mangodb/classes/mangodb.php(370):   MangoDB->连接()

     

1 /var/www/.../modules/mangodb/classes/mangodb.php(173):   MangoDB-> _call('command',Array,Array)

     

2 /var/www/.../modules/mangotask/classes/model/queue/task.php(33):   MangoDB->命令(阵列)

     

3 /var/www/.../modules/mangoQueue/classes/controller/daemon.php(232):   Model_Queue_Task-> get_next()

     

4 /var/www/.../modules/mangoQueue/classes/controller/daemon.php(111):   Controller_Daemon->守护程序()

     

5 [内部功能]:Controller_Daemon-> action_index()

     

6 /var/www/.../system/classes/kohana/request/client/internal.php(118):   reflectionMethod->调用(对象(Controller_Daemon))

     

7 /var/www/.../system/classes/kohana/request/client.php(64):   Kohana_Request_Client_Internal-> execute_request(对象(请求))

     

8 /var/www/.../system/classes/kohana/request.php(1138):   Kohana_Request_Client->执行(对象(请求))

     

9 /var/www/.../index.php(109):Kohana_Request-> execute()

1 个答案:

答案 0 :(得分:0)

驱动程序版本1.2.12肯定存在分叉问题,但这是应该在即将发布的1.3.0版本中解决的问题。特别是,PHP-426是解决此问题的后续问题之一,因为它将连接选择从MongoCursor重新定位到MongoCursor::doQuery(),允许驱动程序在fork之后正确运行。我会留意下一个1.3.0预发行版(beta3或rc1),当然最后的1.3.0版本是通过http://pecl.php.net/package/mongo发布的。