2010-11-15 14 views
5

A partir de ayer (¿quizás después de una reciente actualización de PHP?), Estoy obteniendo algunos errores no deterministas muy extraños en php 5.3.3. Estos también aparecen en nuestro servidor de producción en PHP 5.3.2.Error de referencia de objeto no determinista en PHP 5.3.X

Los errores ascienden esencialmente a Fatal error: Uncaught exception 'ErrorException' with message 'Attempt to assign property of non-object' en varias partes de la base de código. En general, la línea de error es algo así como: $this->foo = $bar en una llamada __construct().

$this no se encuentra en el constructor ?!

No tengo idea de lo que está pasando. ¿Algunas ideas? Es esto posiblemente una regresión de este error ?: http://bugs.php.net/31525

Editar: Debo mencionar, la actualización de la secuencia de comandos después de un rato, sin ningún tipo de cambios en el código, que hace que funcione de nuevo. De ahí que no sea determinista.

Editar 2: Por otra parte, mientras que PHP está configurado para conectarse incluso el más pequeño de los errores, y es registrar otros errores que se producen, este error no se registra en el archivo de registro. Esto me lleva a pensar que estamos viendo un error de dependencia del motor PHP.

+0

cualquier caché de código de operación? – ajreal

+0

En mi cuadro local, no hay ninguno: http://pastie.org/pastes/1300493/text?key=79mmr7dmm10qi4cvy6kvg – Karan

+0

Muestre el constructor ... En realidad, muestre toda la clase si puede ... ¿Lo tiene? Siempre sucede en la misma clase? ¿O vaga el error? ¿Tiene trazas inversas completas para asegurarse de que el error no se dispare en otra línea, sino que se muestre allí (como, por ejemplo, dentro de un método mágico)? – ircmaxell

Respuesta

4

Bueno, parece ser un error ...

Aquí hay algunos informes de errores relevantes:

siendo utilizados
+0

Sí, esto confirma mis sospechas. Vamos a instalar la última instantánea de 5.3.x y publicaremos nuestro progreso aquí. ¡Gracias por la respuesta! – Karan

+0

Por curiosidad, ¿en qué plataforma estás (32 bits x86 o 64 bits x64)? – ircmaxell

+0

Linux karan-desktop 2.6.35-22-generiC# 35-Ubuntu SMP sáb 16 oct. 20:36:48 UTC 2010 i686 GNU/Linux (32 bit) y el servidor de producción ejecuta 64 bit (Linux cyphontech 2.6.32- 25-servidor # 45-Ubuntu SMP sáb 16 oct 20:06:58 UTC 2010 x86_64 GNU/Linux) – Karan

Cuestiones relacionadas