我正在运行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()
答案 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发布的。