Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Quijost.com - Hosting Gratis al alcance de tus manos

Autor Tema: Error 500 en Flask  (Leído 8421 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cowders

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Mensajes: 5
    • Ver Perfil
Error 500 en Flask
« en: Enero 22, 2013, 02:51:48 am »

Hola, mi web funcionaba perfectamente hasta hace unos días, que no se porqué razón ha dejado de funcionar.

La web está hecha con Flask, si entramos a www.cowders.es vemos que funciona correctamente, esa es una de las rutas definidas en Flask (similar a Django en ese aspecto).

La ruta que no funciona sería tal que así: www.cowders.es/peli/680 que debería cargar información de la película con identificador 680. Pero en vez de eso me da alternativamente error 500 o 404. He probado a capturar el error con Flask (muestro un mensaje de error personalizado), pero solo me deja detectar que ha habido un error 500 o 404 pero no porqué razón ha sucedido ese error.

Por lo tanto, Flask funciona correctamente, porque si no www.cowders.es no funcionaria. Pero lo del error 500 para la otra ruta es totalmente random... antes no pasaba, hacía muchísimo que ni siquiera accedía a modificar nada de la web, y en local me funciona perfecto...

Mi código lo único que hace es hacer una consulta GET a otro servicio y cargar una plantilla Flask con la información obtenida del GET.
He probado a cambiar el código que se ejecuta, pero sigue fallando, y en cualquier caso antes funcionaba y en local funciona...


Podría ver el error que se guarda en el log general? alguna idea de cual puede ser el error?


Un saludo y gracias!

PD: Otra duda: Ahora mismo dispongo de una cuenta eFree y quería pasarla a eBasic para disponer de acceso SSH. He intentado hacerlo desde el area de cliente, pero tengo una duda, tenía eFree contratado por un año hasta octubre, si quiero ahora convertirla en eBasic, se me descuenta lo que ya he pagado por adelantado del eFree?
« última modificación: Enero 22, 2013, 03:10:39 am por cowders »
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 en Flask
« Respuesta #1 en: Enero 22, 2013, 03:13:05 am »

Hola y bienvenido cowders,

En el error log general de apache no se detecta ningún error, quizás porque estas capturando el error 500 con Flask y se esta devolviendo un 200 (petición correcta) en su lugar.

Cuando se realiza una petición solo se muestra:
Código: [Seleccionar]
[Tue Jan 22 03:09:00 2013] [error] Optional hook test said: GET /peli/680 HTTP/1.0
[Tue Jan 22 03:09:00 2013] [error] Optional function test said: GET /peli/680 HTTP/1.0

Para ayudarte, tendrías que deshabilitar esa característica para ver si se vuelca alguna información más en en error_log general.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

cowders

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Mensajes: 5
    • Ver Perfil
Re:Error 500 en Flask
« Respuesta #2 en: Enero 22, 2013, 03:15:30 am »

Hola y gracias por la rápida respuesta,

Ahora mismo no estoy capturando el error y si que me sale el "Internal Server Error"

Un saludo!
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 en Flask
« Respuesta #3 en: Enero 22, 2013, 03:30:45 am »

Si veo ese 500, que era el que salía anteriormente, pero ese no es el estándar de Apache, esta mostrándose otro, que puede que sea de Flask que lo capture en última instancia.

Con ese error no se esta mostrando nada en el error_log general. Apache vuelca información de error normalmente a la salida estándar de error y Flask debe estar capturando esto también.

Toda la información de flask debe estar siendo enviada a sdout por defecto, puesto que está basado en un servidor apache con el módulo mod_wsgi este lo ignora silenciosamente.

Por lo que necesitas redireccionar los errores de logs a la salida de stderr (error_log de apache) para que podamos ver alguna traza. Para ello simplemente pon en tu aplicación (no sabría decirte si en el indice de ejecución o la parte afectada):

Código: [Seleccionar]
import logging, sys
logging.basicConfig(stream=sys.stderr)

Es un truco sencillo y no muy elegante, pero debería darnos alguna información al respecto.

Si con eso no conseguimos ninguna información, tendrías que preguntar en los foros de soporte de Flask, ya que no podemos hacer mucho más sin traza de información.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

cowders

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Mensajes: 5
    • Ver Perfil
Re:Error 500 en Flask
« Respuesta #4 en: Enero 22, 2013, 03:38:48 am »

Añadidas las líneas en el código y subido al servidor, espero que se pueda sacar algo en claro :)

Por cierto en mi primer mensaje también preguntaba sobre pasar de una cuenta eFree a eBasic, que tenía algunas dudillas a ver si me las podíais aclarar.

Saludos!
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 en Flask
« Respuesta #5 en: Enero 22, 2013, 03:50:26 am »

Parece que no ha funcionado en este caso, no se muestra ninguna traza, ni mensaje, por lo que no podemos ayudarte en este caso. Si se te ocurre alguna otra idea o método para solucionarlo o en un futuro encuentras una solución, estaremos encantados de volver a ofrecerte soporte.

Sobre efree->ebasic, cuando se cambia de plan se trata como nueva contratación de cuenta y se desecha el anterior contrato sin ningún descuento por diferencia de planes. El coste entre planes no es muy elevado y a veces existe el problema inverso de que un cliente tiene un plan superior y baja de plan, por lo que sucede lo mismo, se anula el anterior contrato y se toma el nuevo que se actualice o renueve. Hubo un tiempo en que permitíamos los descuentos por diferencia de planes y forma mas flexible, pero debido a que nuestros precios ya son bastante baratos y económicos no es viable, ni rentable para nosotros realizarlo de este modo.

Por lo que si deseas actualizar, tendrías ebasic a partir del momento del que hicieras la nueva contratación y se desecharía el efree sin ningún descuento por diferencia de planes.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

cowders

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Mensajes: 5
    • Ver Perfil
Re:Error 500 en Flask
« Respuesta #6 en: Enero 22, 2013, 04:02:59 am »

Hola de nuevo,

Lo he arreglado! lo que me ha costado... toda la tarde/noche!
El problema estaba en que en quijost había instalada una versión del módulo 'requests' mucho mas nueva que la que usaba yo en local, tal y como usaba yo este módulo en local funcionaba perfectamente con la versión vieja, pero parece ser que la última versión de requests no aceptaba el comando que yo estaba usando para obtener un JSON y sacaba un error.

La duda que me queda es que antes en quijost también funcionaba, supongo que hace poco habeis actualizado ese módulo en concreto y por eso me dejó de funcionar de un día para otro... al final he cambiado el código para usar la sintaxis de la nueva versión de 'requests' y todo OK.

Gracias por la ayuda de todas formas, me pensaré lo de cambiar de plan, probablemente lo haga de aquí a un tiempo. Le he dado a cambiar desde el área de cliente pero confiaba en que me hiciera el descuento, no tengáis en cuenta esa solicitud, descartadla y ya lo haré mas adelante :)
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 en Flask
« Respuesta #7 en: Enero 22, 2013, 04:15:48 am »

Perfecto. Si efectivamente se actualizo el módulo requests a la versión 1.1.0 hace poco tiempo. Solemos actualizar el software PHP, Ruby, Python, módulos etc cada poco tiempo o si hay vulnerabilidades de seguridad. En un alojamiento compartido queda responsabilidad del usuario ir adaptando el software cada poco tiempo para que sea funcional o hacerlo compatible.

Estaría bien si comentas para futuras referencias o usuarios como has mostrado el error (ya que no aparecía traza en el error_log y flask no estaba mostrando depuración al respecto, por lo que parece un cambio de nombres o sintaxis) y solo se mostraba una página personalizada de error 500.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

cowders

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Mensajes: 5
    • Ver Perfil
Re:Error 500 en Flask
« Respuesta #8 en: Enero 22, 2013, 15:09:43 pm »

Visto que el error era de flask, puse un try: except: en todo el codigo que presumiblemente estaba provocando el error. Como no podía tener salida por consola, lo que hice fue que el except cargara una plantilla html con el error.

Código: [Seleccionar]
try:
    codigo flask
except Exception, e:
    return render_template('plantilla.html',error=e)

De esta forma vi cual era el error directamente en la web y listo. En realidad una solución bastante facil, pero claro yo al principio creía que el problema no era de mi código :)

Saludos!
En línea
 

Página generada en 0.09 segundos con 34 consultas.