Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2和PHPCR:分段错误_Php_Symfony_Garbage Collection_Segmentation Fault_Doctrine Phpcr - Fatal编程技术网

Symfony2和PHPCR:分段错误

Symfony2和PHPCR:分段错误,php,symfony,garbage-collection,segmentation-fault,doctrine-phpcr,Php,Symfony,Garbage Collection,Segmentation Fault,Doctrine Phpcr,目前,我的Symfony2应用程序在使用Doctrine PHPCR捆绑包时出现问题。在尝试显示Sonata管理员帖子列表时,我们遇到了一个分段错误: 【2013年8月1日星期四12:33:11】【通知】子pid 4239出口信号分段故障(11) 因为我们有很多帖子,所以我们将它们切分以获得正确的表现。这样,我们的帖子路径类似于:“/blog/economics/2014/02/10/my awesome post”。我们的节点及其相应的类是: |_ Blog (Generic) |_

目前,我的Symfony2应用程序在使用Doctrine PHPCR捆绑包时出现问题。在尝试显示Sonata管理员帖子列表时,我们遇到了一个分段错误:

【2013年8月1日星期四12:33:11】【通知】子pid 4239出口信号分段故障(11)

因为我们有很多帖子,所以我们将它们切分以获得正确的表现。这样,我们的帖子路径类似于:“/blog/economics/2014/02/10/my awesome post”。我们的节点及其相应的类是:

|_ Blog (Generic)
    |_ Economics (Section)
        |_ 2014 (Shard)
            |_ 02 (Shard)
               |_ 10 (Shard)
                   |_ my-awesome-post (Post)
我的管理员列表如下所示:

/**
 * @param FormMapper $formMapper
 */
protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        // ...
        ->add('parentTitle', 'string', array('sortable' => true))
        // ...
    ;
}
现在,两种相关的文档方法:

/**
 * Return document section name or "/" by default
 *
 * @return string
 */
public function getParentTitle()
{
    $parent = $this->getSectionParent();

    if ($parent instanceof Section) {
        return $parent->getTitle();
    }

    return '/';
}

public function getSectionParent()
{
    $parent = $this->getParent();
    while ($parent instanceof Shard) {
        $parent = $parent->getParent();
    }

    return $parent;
}
摸索了一会儿之后,我注意到这两种方法中的一种出现了分割错误。不知道具体在哪里。如果我在
getParentTitle
中返回一个硬写字符串,则一切正常。但是,只要我调用
getSectionParent
,就会出现分段错误

我试着用
gdb
调试它,下面是我找到的最精确的堆栈:

Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal 11, Segmentation fault.
#0  zval_mark_grey (pz=0xd0b48751b7bc) at /usr/src/php5/source/php-5.4.25/Zend/zend_gc.c:426
426     /usr/src/php5/source/php-5.4.25/Zend/zend_gc.c: Aucun fichier ou dossier de ce type.
不确定所有这些数据是否足够(我是SEGFULT调试方面的新手)

我试图用谷歌搜索这条消息,但没有找到任何结论。但是,通过zend.enable\u gc=0禁用垃圾收集器是可行的。然而,由于内存消耗的琐碎原因,我不会在生产中通过它

有什么想法吗

编辑

在从头开始重新安装我的机器后,我仍然遇到问题。然而,从默认的Debian PHP版本(5.4.4)传递到DotDeb one(5.4.25)解决了这个问题。但是,在同一地点出现了另一个segfault:

Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f09371c774b in timelib_timezone_db_data_builtin () from /usr/lib/apache2/modules/libphp5.so

我仍然需要一些帮助。:)

您使用的是哪个PHP版本?(似乎您是从源代码编译的)您是否尝试升级PHP?我使用的是PHP5.4.25。我还尝试了在DotDeb上提供的最新PHP5.5版本,但没有成功。你能尝试在普通的ubuntu 12.04上使用发行版的二进制软件包运行该代码吗?(没有dotdeb,没有自编的东西)(知道这需要一些努力,但这就是我现在要做的)我用vanilla PHP(5.4.4)重新安装在Debian Wheezy上(我们的生产服务器在Debian上)。同样的问题。通过DotDeb更新到5.4.25会导致另一个segfault,带有内置的
timelib\u timezone\u db\u data\u
。更新:经过进一步的研究,我发现本地数据库是问题所在(它被破坏了,我甚至无法用mysql本身删除它),所以我创建了一个新的数据库。有了一个新的数据库,它现在运行良好,没有任何分段错误。