Apache erro - criança pid 1789 erro Bus sinal de saída (10)
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?
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