简单Gearman代码的分段错误。 PHP Cli

时间:2012-11-28 12:53:32

标签: php libc gearman

这是一个非常悲伤的故事。我正在尝试在我的项目中使用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

的Gearman

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

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

client.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没有效果。

2 个答案:

答案 0 :(得分:2)

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

尝试:

$client->addTask('taskplus2', serialize(10));

答案 1 :(得分:0)

尝试从官方网站更新gearman版本到1.1.2。