PHP5 运行简单脚本时出现总线错误 - 是什么?

PHP5 运行简单脚本时出现总线错误 - 是什么?

使用 PHP 脚本时,我通常不必担心底层系统。但今天,我必须这么做。

一个运行良好的 PHP 脚本 (cronjob) 自 2 天前以来就崩溃了。cronjob 邮件以及通过 shell 运行脚本都显示:

Bus-Zugriffsfehler (Speicherabzug geschrieben)

如果通过 PHP-FPM(通过 nginx)运行相同的脚本,我会收到一个 Bad Gateway,这可能意味着“我已经崩溃了,别管我”。

不幸的是,我不知道如何找到更多信息,更不用说解决问题了。我已经检查了系统日志(与问题无关)dmesg(没有)和 PHP 错误日志(没有)。我还重新安装了 php5-cli、php5-pfm,甚至 libc6,并重新启动了服务器——没有效果。

顺便说一句:整个程序都在虚拟服务器 (VPS) 上运行,这也限制了出现硬件错误的可能性。PHP 最近已更新到 php5-cli (5.5.9+dfsg-1ubuntu4.7),但此后脚本运行良好,持续了 9 天,并重启了两次……

有什么想法吗?非常感谢!

燃烧的利奥


编辑:解决方案

当然,定期echo从 PHP 脚本发送并不优雅 - 但它有助于跟踪函数调用的问题。当然,寻求帮助的人确实触及了一些东西,当他告诉他他没有...

解决方案非常简单:第一行中静态类方法调用自身:

class ServerManager {

    public static function dropCache() {
        ServerManager::dropCache();  // VERY STUPID
        foreach (array('active', 'packed', 'old') as $class) {
            $cacheID = 'cache-'.$class.'-0';
            Cache::drop($cacheID);
        }
    }

}

好吧,也许 PHP 应该更具体一点,说明问题的原因。不过,删除这个就解决了问题。

相关内容