Baffled: PHP Fatal error: Wyrzucono wyjątek bez ramki stosu w Unknown w linii 0?

Odkryłem, że jedną z częstych przyczyn błędu jestwyjątek jest generowany z programu obsługi wyjątków. Jestem pewien, że to nie zdarza się w aplikacji próbuję debugować ... Ale umieściłem wszystkie linie przetwarzania inicjalizacji na górze index.php w try / catch. *

Najwyraźniej może się tak zdarzyć, ponieważniektórych rzeczy nie można serializować do przechowywania w sesji. Co najwyżej ta aplikacja przechowuje tablice w sesji (całkiem sporo), ale jestem przekonany, że nie przechowuje w niej niczego nadzwyczajnego.

Ktoś skomentował, że stało się to z ich kluczem podstawowymmusiał być CHAR (32) zamiast INT (11). PK w tej aplikacji to wszystkie INT.

Inne sugestie mówią, że może to być problemPHP 5.3.3 naprawione w 5.3.6, pełny dyski anależy wpisać typową wartość SimpleXML. Zdarza się, że uruchamiamy PHP 5.3.3, ale w tym przypadku uaktualnienie musiałoby być ostatecznością. Nie zawsze to robił.

AKTUALIZACJA / UWAGA: Właściwie sam nie mogę odtworzyć błędu, widzę go tylko w dziennikach, zobacz poniżej akapit, gdzie Iuwierzyć błąd się dzieje ...

* Z dzienników błędów wydaje się prawdopodobne, że przynajmniej jedno miejsce, w którym się dzieje, to index.php. Wyprowadzam to tylko dlatego, że jest to wskazane w niektórych wpisach przez odsyłający adres URL. Kod try / catch znajduje się obecnie tylko wokół „górnej” części inicjalizacyjnej skryptu, poniżej znajduje się głównie wyjście HTML. W pliku wyjściowym jest jakiś kod PHP (dość proste), więc może będę musiał to przetestować. Oto część połowu, która nie generuje żadnych wyników w dziennikach:

<code>} catch (Exception $e) {
    error_log(get_class($e)." thrown. Message: ".$e->getMessage(). "  in " . $e->getFile() . " on line ".$e->getLine());
    error_log('Exception trace stack: ' . print_r($e->getTrace(),1));
}
</code>

Naprawdę doceniam wszelkie wskazówki na ten temat!

EDYCJA: PHP działa jako moduł Apache (Server API: Apache 2.0 Handler). Nie sądzę, aby były używane akceleratory PHP, ale może to być tylko to, że nie wiem, jak to powiedzieć. Żadne z tychwymienione na Wikipedii są w phpinfo ().

O ile mogę powiedzieć, MPM to prefork. To pierwszy raz, w jaki zaglądałem do MPM:

<code># ./httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
</code>

questionAnswers(11)

yourAnswerToTheQuestion