1

这是一个非常悲伤的故事。我正在尝试在我的项目中开始使用 Gearman。但不能运行简单的测试。

root@140141-10009:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

PHP

root@140141-10009:~# php -v
PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 18:59:41)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

齿轮人

root@140141-10009:~# gearmand -V
gearmand 0.34 - https://bugs.launchpad.net/gearmand

PHP PECL Gearman 1.1.0,从源代码编译,没有错误。所有 (2) 项测试均通过。没有启用其他 PHP 扩展。

客户端.php:

<?php
$client = new GearmanClient();
$client->addServer('127.0.0.1');
$client->setTimeout(10000);
$client->addTask('taskplus2', 10);
$client->addTask('taskplus2', 15);
$client->runTasks();

错误:

root@140141-10009:~/gearman/proto# php client.php
Segmentation fault

dmesg:

[15066.824900] php[20520]: segfault at f ip 00007f128470ba40 sp 00007fffd9f1dd28 error 4 in libc-2.15.so[7f12845c1000+1b5000]

我已经尝试过 PHP 5.3、5.4、Ububtu 10.04、12.04,使用 gearman-ppa 而没有使用。我还尝试了 PECL Gearman 0.8.1、0.8.3、1.0.2、1.0.3、1.1.0。安装所有这些以清理设置 Ubuntu。谷歌搜索libc6 gearman没有效果。

4

2 回答 2

2

该方法GearmanClient::addTask()接受字符串而不是整数作为第二个参数。

尝试:

$client->addTask('taskplus2', serialize(10));
于 2012-12-18T14:40:42.207 回答
0

尝试从官网更新 gearmand 版本到 1.1.2。

于 2012-12-13T13:05:09.540 回答