2010-11-15 11 views
5

Seit gestern (vielleicht nach einem aktuellen PHP-Update?), Bekomme ich einige sehr unbestimmte nicht-deterministische Bugs in PHP 5.3.3. Diese erscheinen auf unserem Produktionsserver in PHP 5.3.2.Nicht-deterministische Objektreferenzfehler in PHP 5.3.X

Die Fehler betragen im Wesentlichen Fatal error: Uncaught exception 'ErrorException' with message 'Attempt to assign property of non-object' in verschiedenen Teilen der Codebasis. Im Allgemeinen ist die Fehlerzeile etwas wie: $this->foo = $bar in einem __construct() Aufruf.

$this wird nicht im Konstruktor gefunden ?!

Ich habe keine Ahnung was los ist. Irgendwelche Ideen? Ist dies möglicherweise eine Regression dieser Fehler ?: http://bugs.php.net/31525

bearbeiten: Ich sollte erwähnen, nach einiger Zeit das Skript erfrischend, mit absolut keine Änderungen am Code, macht es wieder funktionieren. Daher nicht-deterministisch.

Edit 2: Des Weiteren, während PHP eingestellt ist selbst kleinste Fehler zu protokollieren und ist andere Fehler Anmeldung, wie sie auftreten, wird dieser Fehler nicht in der Protokolldatei protokolliert. Das bringt mich zu der Annahme, dass wir einen PHP-Engine-Abhängigkeitsfehler betrachten.

+0

jede Cache-Opcode verwendet? – ajreal

+0

Auf meiner lokalen Box gibt es keine: http://pastie.org/pastetes/1300493/text?key=79mmr7dmm10qi4cvy6kvg – Karan

+0

Zeigen Sie den Konstruktor ... Eigentlich zeigen Sie die ganze Klasse, wenn Sie können ... Does it immer in der gleichen Klasse passieren? Oder läuft der Fehler? Haben Sie vollständige Rückverfolgungen, um sicher zu sein, dass der Fehler nicht in einer anderen Zeile ausgelöst wird, sondern dort angezeigt wird (wie zB in einer magischen Methode)? – ircmaxell

Antwort

4

Nun, sieht es ein Fehler zu sein ...

Hier einige relevante Fehlerberichte zu erkennen:

+0

Ja, das bestätigt meinen Verdacht. Wir werden den letzten Snapshot von 5.3.x installieren und unseren Fortschritt hier veröffentlichen. Danke für die Antwort! – Karan

+0

Aus Neugier, auf welcher Plattform sind Sie (32-Bit x86? Oder 64-Bit x64)? – ircmaxell

+0

Linux karan-desktop 2.6.35-22-generiC# 35-Ubuntu SMP Sat Okt 16 20:36:48 UTC 2010 i686 GNU/Linux (32 bit) und der Produktionsserver läuft 64 bit (Linux cyphontech 2.6.32- 25-server # 45-Ubuntu SMP Sat Okt 16 20:06:58 UTC 2010 x86_64 GNU/Linux) – Karan