Apache-Fehler - untergeordnetes PID 1789-Ausgangssignal Busfehler (10)
Frage
Ich erhalte diesen seltsamen Fehler child pid 1789 exit signal Bus error (10)
, den ich noch nie in meinem Apache-Fehlerprotokoll gesehen habe. Ich verwende das FuelPHP-Framework. Die Web-App funktioniert einwandfrei. Aber heute habe ich plötzlich einen neuen Controller erstellt, der selbst eine Kopie eines anderen Controllers ist. Die, von der ich kopiert habe, funktioniert einwandfrei (http:// localhost / myapp / admin / users), aber die Kopie (http:// localhost / myapp / admin /wohnungen) macht mir diesen Fehler?! Ich bin darüber frustriert.
Nach 3 Stunden Debugging habe ich endlich die Zeile gefunden, in der das Ganze aufhört. Es befindet sich im FuelPHP-Kern in der Router-Klasse in dieser Zeile if (class_exists($class))
. Der $class
vor dem if hat den Wert Controller_Admin_Apartments
. Dies ist die Klasse, die ich hinzugefügt habe und die in meinem Controller-Klassenordner vorhanden ist.
Kraftstoff / Kern / Klassen / 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;
}
Ein Benutzer im FeulPHP-Forum hat festgestellt, dass dies möglicherweise mit der Hardware zusammenhängt. Aber es ist nicht. Ich habe das Ganze auf einen anderen Computer verschoben und habe immer noch das Gleiche. Ich verstehe es einfach nicht. Was passiert hier?
Lösung
Ok, erschieß mich.Habe gerade den Fehler selbst gefunden.Ich weiß nicht, warum es passiert, aber ich hatte einen Synthax-Fehler in meinem Controller-Controller_Admin_Apartments
.Ich hatte diese Funktion:
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');
}
Beachten Sie die Zeile: if (apartment = Model_Apartment::find($id))
, in der ich vergessen habe, $
vor dem Variablennamen hinzuzufügen.Ich bin wirklich überrascht, dass mich das FulePHP-Framework nicht darauf aufmerksam gemacht hat und dass der einzige Fehler, den ich hatte, im Apache-Fehlerprotokoll war: S.Seltsam, nur seltsam ...
Andere Tipps
Dies ist eine völlig andere Lösung, die sich jedoch auf den 'Signalbusfehler' bezieht: Ich habe diese erhalten, als ich versehentlich 512MB
und nicht nur 512M
in die memory_limit-Einstellung meiner php.ini eingegeben habe.