Symfony2 - Apache在使用app.php时崩溃

时间:2012-08-14 11:02:12

标签: php apache symfony segmentation-fault

当我们使用app_dev.php页面(开发版)时,没有问题,一切运行正常。

但是当我们尝试访问app.php页面时,有些页面会使Apache崩溃。

以下是我们的配置:

  • Debian 6 x64 with kernel 3.2.13
  • Apache 2.2.22
  • PHP 5.3.3-7 + squeeze13 扩展名:pdo / pdo_mysql / pdo_pgsql / pdo_sqlite / intl / apc / gd

coredump给我们以下结果:

#0  0x00007feab144e556 in zend_std_read_property (object=0x3, member=0x7feaa30ab840, type=3) at /tmp/buildd/php5-5.3.3/Zend/zend_object_handlers.c:340
#1  0x00007feab1463604 in zend_fetch_property_address_read_helper_SPEC_VAR_CONST (type=3, execute_data=0x7feab5cf5eb0) at /tmp/buildd/php5-5.3.3/Zend/zend_vm_execute.h:10084
#2  0x00007feab1453570 in execute (op_array=0x7feab5c863d8) at /tmp/buildd/php5-5.3.3/Zend/zend_vm_execute.h:107
#3  0x00007feab1420ef4 in zend_call_function (fci=0x7fff2689bfb0, fci_cache=0x0) at /tmp/buildd/php5-5.3.3/Zend/zend_execute_API.c:963
#4  0x00007feab1442047 in zend_call_method (object_pp=0x7fff2689c0d8, obj_ce=0x7feab63ea400, fn_proxy=0x7fff2689c0e8, function_name=0x7feab181e556 "__destruct", 
    function_name_len=646561136, retval_ptr_ptr=0x0, param_count=-1320891466, arg1=0x7fea00000000, arg2=0x0) at /tmp/buildd/php5-5.3.3/Zend/zend_interfaces.c:97

关于第一帧的更多细节:

#0  0x00007feab144e556 in zend_std_read_property (object=0x3, member=0x7feaa30ab840, type=3) at /tmp/buildd/php5-5.3.3/Zend/zend_object_handlers.c:340
340     property_info = zend_get_property_info(zobj->ce, member, (zobj->ce->__get != NULL) TSRMLS_CC);

发送的第一个参数,zobj-> ce = 0x3,似乎很可疑,所以我查看了zobj内容:

(gdb) p *zobj
$3 = {ce = 0xa5935461f887fe37, properties = 0xa5935461f8e5bbb7, guards = 0x0}

但是什么包含zobj-> ce?

(gdb) p *(zobj->ce)
Cannot access memory at address 0xa5935461f887fe37

这个地址似乎导致无效的内存位置。 令人不安的是,只有在使用Symfony2应用程序的生产版本时才会出现此问题。它可能表明APC或仅加载了生产版本的其他模块存在问题,但我们没有发现可能导致此问题的线索。

我们尝试重新安装我们安装的大多数PHP扩展,但在此之前没有结果。

编辑:按需,这是app.php代码,这是Symfony2附带的原始文件。不过,我真的不相信这是问题的原因。

header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT');

require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';

use Symfony\Component\HttpFoundation\Request;

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
$kernel->handle(Request::createFromGlobals())->send();

0 个答案:

没有答案