[Python-es] Fallo algunas veces al leer archivo en aplicacion WSGI

Txema Vicente txema en nabla.net
Mar Jun 4 12:04:48 CEST 2013


No he dicho nada, os.path.isfile funciona perfectamente, era otro problema


El 3 de junio de 2013 20:48, Txema Vicente <txema en nabla.net> escribió:

>
>  Buenas.
>
> Tengo un problemilla que no se a que puede deberse, a ver si alguien me
> ilumina.
>
> Estoy haciendo un framework WSGI (si, ya, otro), que todavia no esta
> presentable pero ya va cogiendo forma [1]. El objetivo es crear un paquete
> para utilizar Dojo Toolkit desde python, de la manera mas sencilla posible.
> Hace muchos años lo hice con Dojo 0.4 y PHP, y ahora voy a intentarlo con
> python y Dojo 2.0. Empece sobre webapp2, luego con web2py, pero al final me
> he hecho mi propio framework sencillito, para poder probar las cosas a mi
> manera, aunque al final es para que genere javascript para otro. Uso
> wsgiref para servir la app, y selenium para testear.
>
> El problema es que al arrancar, Dojo Toolkit carga muchos archivos
> javascript, y algunas veces me pasa que os.path.isfile da False sobre
> archivos que si que existen, lo que hace que la página se rompa. Esto
> provoca que los test fallen de vez en cuando, y es muy molesto. Puedo
> evitarlo cargardo Dojo desde un CDN, pero me revienta no saber por qué pasa.
>
> Leo por ahi que os.path no es seguro en wsgi, asi que en vez de eso voy
> con un try:open, pero casca igual y de vez en cuando tampoco encuentra el
> archivo. [2]
>
> Pense que al ser multihilo, y como Dojo al arrancar lanza unas 30
> peticiones a la vez, podria ser que a veces pillara el disco muy ocupado y
> por eso no pudiera cargarlo, asi que me hago un Cache [3] y cargo todos los
> js en memoria y asi los mando sin tocar el disco. Y sorpresa, tambien
> falla, aunque ya habia cargado antes el archivo!
>
> Siempre falla en los mismos dos archivos: dojo/dojo.js y dijit/dijit.js, y
> si falla uno el otro tambien. No es extraño, ya que son los que hacen que
> se carguen todos los demas.
>
> He leido algo sobre "race condition", pero no me parece que sea mi
> problema. He echado un vistazo a algunos framework y usan isfile
> tranquilamente.
>
> Y lo que pregunto es:
>
> - A alguien se le ocurre por donde puede venir el problema?
> - Que cosas no son seguras de usar en una aplicacion WSGI? Documentacion
> sobre esto?
>
> Por otro lado, si a alguien le apetece echarle un vistazo al paquete y
> comentar algo, encantado de recibir sugerencias, criticas, o modulos que me
> puedan ayudar en la generacion de javascript (existe algun validador?). En
> Examples/TEST hay un ejemplo de como funciona.
>
> Saludos.
>
> [1] http://code.google.com/p/pyojo/
> [2] http://www.pyojo.com/doc/_modules/pyojo.html#Request.static
> [3] http://www.pyojo.com/doc/_modules/pyojo/content.html#CachedText
>
>
>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130604/53a86696/attachment.html>


Más información sobre la lista de distribución Python-es