【问题标题】:Unable to connect to MongoDB server at Interrupted system call系统调用中断时无法连接到 MongoDB 服务器
【发布时间】:2012-09-17 18:06:45
【问题描述】:

我正在运行一个 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->connect()

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->daemon()

5【内部函数】:Controller_Daemon->action_index()

6 /var/www/.../system/classes/kohana/request/client/internal.php(118): 反射方法->调用(Object(Controller_Daemon))

7 /var/www/.../system/classes/kohana/request/client.php(64): Kohana_Request_Client_Internal->execute_request(Object(Request))

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

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

【问题讨论】:

    标签: php mongodb centos kohana task-queue


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-02
      • 2014-02-04
      • 2021-10-03
      • 2017-05-10
      • 2019-02-26
      • 2020-11-03
      • 1970-01-01
      • 2013-03-25
      相关资源
      最近更新 更多