Ошибка Apache - дочерний сигнал выхода pid 1789. Ошибка шины (10)

StackOverflow https://stackoverflow.com/questions/8828146

  •  27-10-2019
  •  | 
  •  

Вопрос

Я получаю эту странную ошибку child pid 1789 exit signal Bus error (10) Я никогда раньше не видел этого в своем журнале ошибок Apache.Я использую платформу FuelPHP.Веб-приложение работает нормально.Но вдруг сегодня я создал новый контроллер, который сам по себе является копией другого контроллера.Тот, который я скопировал, работает нормально (http://localhost/myapp/admin/users), но копия (http://localhost/myapp/admin/apartments) вызывает у меня эту ошибку?!Я расстроен этим.

После 3 часов отладки я наконец нашел линию, на которой все заканчивается.Он находится в ядре FuelPHP в классе Router в этой строке. if (class_exists($class)).Тем $class до того, как if имеет значение Controller_Admin_Apartments, который я добавил и существует в папке классов моего контроллера.

топливо/ядро/классы/router.php:

protected static function parse_segments($segments, $namespace = '', $module = false)
{
    $temp_segments = $segments;

    foreach (array_reverse($segments, true) as $key => $segment)
    {
        $class = $namespace.'Controller_'.\Inflector::words_to_upper(implode('_', $temp_segments));
        array_pop($temp_segments);
        if (class_exists($class))      // ***** HERE ERROR HAPPENS ***** //
        {
            return array(
                'controller'    => $class,
                'action'        => isset($segments[$key + 1]) ? $segments[$key + 1] : null,
                'method_params' => array_slice($segments, $key + 2),
            );
        }
    }

    // Fall back for default module controllers
    if ($module)
    {
        $class = $namespace.'Controller_'.$module;
        if (class_exists($class))
        {
            return array(
                'controller'    => $class,
                'action'        => isset($segments[0]) ? $segments[0] : null,
                'method_params' => array_slice($segments, 1),
            );
        }
    }
    return false;
}

Пользователь в Форум FeulPHP отметил, что это может быть связано с оборудованием.Но это не так.Я перенес все это на другой компьютер и все равно то же самое.Я просто не понимаю.Что здесь происходит?

Это было полезно?

Решение

Хорошо, пристрели меня.Только что нашел ошибку сам.Я не знаю, почему это происходит, но у меня в контроллере возникла синтаксическая ошибка. Controller_Admin_Apartments.У меня была эта функция:

public function action_delete($id = null)
{
    if (apartment = Model_Apartment::find($id))
    {
        $apartment->delete();
        Session::set_flash('success', 'Deleted apartment #'.$id);
    }
    else
    {
        Session::set_flash('error', 'Could not delete apartment #'.$id);
    }
    Response::redirect('admin/apartments');
}

Обратите внимание на строку: if (apartment = Model_Apartment::find($id)), где я забыл добавить $ перед именем переменной.Я очень удивлен, что платформа FulePHP не предупредила меня об этом и что единственная ошибка, которая у меня была, была в журнале ошибок Apache: S.Странно, просто странно...

Другие советы

Это совершенно другое решение, но связанное с «ошибкой сигнальной шины»:Я получил это, когда случайно вошел 512MB а не просто 512M в настройке Memory_limit моего php.ini.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top