[pyar] Google App Engine: No resuelve URLs en entorno local

Martin Rovere noog100 en gmail.com
Mie Mar 20 22:33:44 ART 2013


Hola,

Estoy lidiando con un problema que no puedo resolver hace varios días con
el app engine de google, asique la pregunta va destinada a aquellos que
tengan conocimientos en esta tecnología o aquellos que tengan ganas de
instalar el app engine para darme una mano con el troubleshooting.

Paso a detallar el problema:

Estoy queriendo fetchear una URL desde el app engine con urllib2.urlopen()
tal como lo especifica la documentación pero me arroja un error de
getaddrinfo failed. Este es el codigo con el que se replica el error:

import webapp2
import urllib2

class MainPage(webapp2.RequestHandler):
def get(self):
self.response.out.write(urllib2.urlopen("http://www.google.com").read()

app = webapp2.WSGIApplication([('/', MainPage), ], debug=True)

El error que me arroja dice (mas abajo dejo el stack entero): Unable to
fetch URL: http://www.google.com Error: [Errno 10106] getaddrinfo failed

Ahora, si hago la llamada a urllib2.urlopen pasandole una direccion de IP
no arroja ningun error:

self.write(urllib2.urlopen("http://173.194.42.34").read())

Esto me llevo a pensar que podria ser un problema de DNS, por lo que hice
la misma llamada afuera del GAE, en el interprete de python, y resulta que
resuelve bien la direccion:

>>> import urllib2
>>> urllib2.urlopen("http://www.google.com")


Entonces decidi probar deployando la app, para comprobar que fuese un
problema de mi entorno, y resultó que estaba en lo cierto. Ese mismo codigo
funciona correctamente una vez deployado pero no en mi entorno local.

Para llegar a estas conclusiones tuve que googlear bastante y postear
varias preguntas en stackoverflow y el foro de udacity (mas abajo dejo los
links a los threads).

Mucha gente pregunta si estoy atras de un proxy, ya que el problema
pareciera apuntar a eso, pero despues de checkear en paginas (como
http://amibehindaproxy.com/) y comandos de windows me doy cuenta que no.
Por lo menos no uno que se vea.

C:\Users\Developer>netsh winhttp show proxy

Current WinHTTP proxy settings:

    Direct access (no proxy server)


Tambien probe desactivando el firewall y antivirus con los mismos
resultados.

Asi decidí probarlo en otras pcs. Empece con la laptop de mi hermano, que
sale por el mismo router que esta PC y el resultado fue el mismo. Le pedí a
un amigo que lo probara desde la oficina y el problema fue el mismo. Hago
notar que los ISPs fueron siempre Fibertel.

Principalmente les escribo a ustedes, ya que por ser una comunidad local
hay posibilidad de compartir ISP y de comprobar que otros ISPs de la zona
tienen o no tienen el mismo problema, descartando del problema una fuente
mas.

*Necesitaría que alguien probara si le sucede lo mismo para poder aislar si
es un problema de Fibertel o estoy equivocandome en algo. Si ya tienen el
app engine instalado, les toma muy poco tiempo probarlo y me ayudan
muchisimo.*

Les agradezco desde ya!

Saludos.

############################

Aca estan los links de stack overflow y udacity:

http://stackoverflow.com/questions/15492961/cannot-fetch-urls-from-gae-local-environment
http://stackoverflow.com/questions/15514953/gae-getaddrinfo-error-on-urlopen
http://stackoverflow.com/questions/15501245/gae-urllib2-not-working-on-local-environment
http://forums.udacity.com/questions/100041915/unit-5-problem-with-urllib2open-in-google-app-engine

############################

Este es el stack trace:

Traceback (most recent call last):
  File "C:\Program Files
(x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in
__call__
    rv = self.handle_exception(request, response, e)
  File "C:\Program Files
(x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in
__call__
    rv = self.router.dispatch(request, response)
  File "C:\Program Files
(x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in
default_dispatcher
    return route.handler_adapter(request, response)
  File "C:\Program Files
(x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in
__call__
    return handler.dispatch()
  File "C:\Program Files
(x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in
dispatch
    return self.handle_exception(e, self.app.debug)
  File "C:\Program Files
(x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in
dispatch
    return method(*args, **kwargs)
  File "C:\Users\Developer\Desktop\test\main.py", line 15, in get
    self.write(urllib2.urlopen("http://www.google.com").read())
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 400, in open
    response = self._open(req, data)
  File "C:\Python27\lib\urllib2.py", line 418, in _open
    '_open', req)
  File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 1207, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "C:\Python27\lib\urllib2.py", line 1180, in do_open
    r = h.getresponse(buffering=True)
  File "C:\Program Files
(x86)\Google\google_appengine\google\appengine\dist27\httplib.py", line
507, in getresponse
    'An error occured while connecting to the server: %s' % e)
error: An error occured while connecting to the server: Unable to fetch
URL: http://www.google.com Error: [Errno 10106] getaddrinfo failed

############################
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130320/7ba49434/attachment.html>


More information about the pyar mailing list