ОБНОВЛЕННАЯ ИНФОРМАЦИЯ:
ОС Windows 7 32bit
Apache 2.2.15
PHP 5.2.13
Это действительно странно. Когда я получил этот URI в моем приложении:
/view/course/teid/1/cid/-1/pos/30
Apache падает.
Когда я перехожу к очень похожему URI - как этот:
/view/course/teid/1/cid/-1/pos/29
Все отлично работает.
Это из журнала ошибок:
[Thu Aug 05 11:22:14 2010] [notice] Parent: child process exited with status 255 -- Restarting.
Мне удалось отследить линию, которая вызывает сбой Apache:
if (true === $aCourseTree->SetNodePassed($node)) { // this line crashes Apache
self::writeTreeToDb($aCourseTree, $training, $this->aUtils);
}
Метод здесь:
public function SetNodePassed(CourseTreeNode $theNode)
{
$aWasChange = !isset($theNode->Passed) || $theNode->Passed !== true;
$theNode->Passed = true;
if ($aWasChange && isset($theNode->Parent)) {
if (true === $this->AreChildrenPassed($theNode->Parent)) {
$this->SetNodePassed($theNode->Parent);
}
}
return $aWasChange;
}
Что, черт возьми, происходит? Если есть какая-то ошибка, это должна быть просто ошибка PHP. Почему Apache падает?