Pergunta

Eu recebo este estranho child pid 1789 exit signal Bus error (10) erro que eu nunca vi antes na minha log de erro Apache. Eu estou usando quadro FuelPHP. O aplicativo web está funcionando bem. Mas, de repente, hoje eu criada novo controlador, que em si é uma cópia de outro controlador. O que eu copiado de obras bem (http: // localhost / MyApp / admin / usuários), mas a cópia (http: // localhost / MyApp / admin / apartamentos) me que o erro faz ?! Estou frustrado por isso.

Depois de 3 horas de depuração eu finalmente encontrei a linha onde as coisas inteiras pára. É no núcleo FuelPHP na classe Router nesta linha if (class_exists($class)). O $class antes do se tem Controller_Admin_Apartments valor, que é a classe eu adicionei e existe em minha pasta classes do controlador.

combustível / core / aulas / 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;
}

Um usuário em fórum FeulPHP notou isso poderia estar relacionado Hardware. Mas não é. Mudei a coisa toda para outro computador e ainda ter a mesma coisa. Eu só não entendo. O que está acontecendo aqui?

Foi útil?

Solução

Ok atirar em mim. Só encontrei o erro meu eu. Eu não sei por que isso acontece, mas eu tinha um erro synthax na minha Controller_Admin_Apartments controlador. Eu tinha essa função:

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');
}

Observe a linha: if (apartment = Model_Apartment::find($id)), onde eu esqueci de acrescentar $ em frente do nome da variável. quadro FulePHP Estou realmente surpreso não alertar-me para isso e que o único erro que eu tinha era no log de erro do Apache: S. Estranho, apenas estranho ...

Outras dicas

Esta é uma solução completamente diferente, mas relacionado com o 'erro Bus sinal':. Eu tenho esse 512MB quando eu tinha entrado acidentalmente em vez de apenas 512M na configuração memory_limit dos meus php.ini

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top