Назад | Перейти на главную страницу

Ошибка шины во время PHP5 выполняется простой скрипт - что?

При работе со скриптами PHP мне обычно не нужно беспокоиться о базовой системе. Сегодня я должен.

Скрипт PHP (cronjob), который работал нормально, дает сбой 2 дня назад. Письмо cronjob, а также запуск сценария через оболочку говорят:

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 дней и двух перезагрузок ...

Любые идеи? Большое спасибо!

BurninLeo


РЕДАКТИРОВАТЬ: Решение

Конечно, регулярно отправляя 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 мог бы быть более конкретным в причине проблемы. Тем не менее, удаление этого решило проблему.