2011-03-14 24 views
5

He estado experimentando un problema intermitente extraño en los últimos meses que me he estado volviendo loco tratando de aislar.Problema intermitente: las solicitudes POST se corrompen

Tengo una película Flash ejecutándose en mi sitio que genera datos XML y luego la envía a través de una solicitud POST a un script PHP. La integridad de este archivo es clave para el funcionamiento de mi aplicación, así que debo asegurarme de que llegue intacto. Para esto genero un hash MD5 y lo envío también. En el lado receptor mi script PHP aceptará los datos, MD5 y comparará los dos hashes. Si son iguales, supongo que el archivo está bien y lo almacena para usarlo más adelante. Si los hashes MD5 son diferentes, me envío un correo electrónico y hago una copia del archivo para la inspección manual.

La mayoría de las veces (> 99%) funciona muy bien y no encuentro problemas con los datos cargados. Sin embargo, de vez en cuando me parece que algunos caracteres adicionales se inyectan en el archivo XML que hace que se dañe. Cuando esto sucede, el archivo también parece estar truncado. He aquí un fragmento de lo que estoy viendo en los archivos dañados - parece como si se trata de algún servidor web de configuración relacionados:

... comienzan datos XML ...

 <scale>1.7</scale> 
    <rotation>0</rotation> 
    <popdelay>0.7290036325342953</popdelay> 
    Proxy-Connection: keep-alive 
Cache-Control: max-age=0 

0<poptime>0.6</poptime> 
    <popangle>90</popangle> 
    <shadowvis>true</shadowvis> 
    <backingcolor>0xFF222222</backingcolor> 

... continuar XML datos ...

He encontrado que el problema continuará ocurriendo después de que ocurra en una máquina en particular, es decir, si un usuario continuamente intenta subir su archivo, el error continuará apareciendo el 100% del tiempo para ellos. He visto que esto suceda en múltiples navegadores/plataformas (enumerados a continuación):

Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CMNTDF; InfoPath.3; .NET4.0C) 
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1) 
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.16) Gecko/20101130 Firefox/3.5.16 (.NET CLR 3.5.30729) 
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CMNTDF; InfoPath.3; .NET4.0C) 

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3 

se está accediendo a Mi servidor de aplicaciones a través de otro servidor apache2 corriendo mod_proxy, aunque no estoy seguro si eso es jugar un papel ya que esto El procedimiento parece funcionar casi todo el tiempo en otras máquinas. He intentado sintonizar mis configuraciones de apache2 pero no parecen hacer ninguna diferencia (puedo publicarlas más tarde si crees que es relevante/útil)

Si alguien tiene alguna idea de lo que está pasando o cómo empezar a abordar esto realmente, realmente lo agradecería. He estado tratando de investigar esto durante unos meses y no he encontrado nada.

¡Muchas gracias por su tiempo!

+1

Dado que está sucediendo en varios tipos diferentes de navegadores, lo más probable es que no sea algo del navegador. comience a investigar de dónde provienen esas solicitudes. ¿Es un ISP en particular? ¿Una subred particular? –

+1

¿Qué método estás utilizando para enviar los datos? ¿Qué tan grande es la información que está enviando? –

+0

pulgares hasta la pregunta "qué tan grande es la información". Parece que el XML se rompió en varias solicitudes, ya sea debido al tamaño o la solicitud tardó mucho tiempo (posiblemente debido a una conexión lenta en el exterior). – preinheimer

Respuesta

Cuestiones relacionadas