Also, here's a few rounds of the recursion stack trace: File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 201, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 227, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 247, in Send url, method=method, body=payload, headers=headers) File "...myapp.../lib/oauth2client/client.py", line 622, in new_request redirections, connection_type) File "...myapp.../lib/httplib2/__init__.py", line 1609, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File "...myapp.../lib/httplib2/__init__.py", line 1351, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "...myapp.../lib/httplib2/__init__.py", line 1307, in _conn_request response = conn.getresponse() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 522, in getresponse **extra_kwargs) File "...myapp.../lib/httplib2/__init__.py", line 1106, in fixed_fetch validate_certificate=validate_certificate) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 271, in fetch return rpc.get_result() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result return self.__get_result_hook(self) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 378, in _get_fetch_result rpc.check_success() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 579, in check_success self.__rpc.CheckSuccess() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_rpc.py", line 157, in _WaitImpl self.request, self.response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 201, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 227, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 247, in Send url, method=method, body=payload, headers=headers) File "...myapp.../lib/oauth2client/client.py", line 622, in new_request redirections, connection_type) File "...myapp.../lib/httplib2/__init__.py", line 1609, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File "...myapp.../lib/httplib2/__init__.py", line 1351, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "...myapp.../lib/httplib2/__init__.py", line 1307, in _conn_request response = conn.getresponse() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 522, in getresponse **extra_kwargs) File "...myapp.../lib/httplib2/__init__.py", line 1106, in fixed_fetch validate_certificate=validate_certificate) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 271, in fetch return rpc.get_result() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result return self.__get_result_hook(self) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 378, in _get_fetch_result rpc.check_success() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 579, in check_success self.__rpc.CheckSuccess() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_rpc.py", line 157, in _WaitImpl self.request, self.response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 201, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 227, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 247, in Send url, method=method, body=payload, headers=headers) File "...myapp.../lib/oauth2client/client.py", line 622, in new_request redirections, connection_type) File "...myapp.../lib/httplib2/__init__.py", line 1609, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File "...myapp.../lib/httplib2/__init__.py", line 1351, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "...myapp.../lib/httplib2/__init__.py", line 1307, in _conn_request response = conn.getresponse() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 522, in getresponse **extra_kwargs) File "...myapp.../lib/httplib2/__init__.py", line 1106, in fixed_fetch validate_certificate=validate_certificate) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 271, in fetch return rpc.get_result() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result return self.__get_result_hook(self) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 378, in _get_fetch_result rpc.check_success() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 579, in check_success self.__rpc.CheckSuccess() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_rpc.py", line 157, in _WaitImpl self.request, self.response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 201, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 227, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 247, in Send url, method=method, body=payload, headers=headers) File "...myapp.../lib/oauth2client/client.py", line 622, in new_request redirections, connection_type) File "...myapp.../lib/httplib2/__init__.py", line 1609, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File "...myapp.../lib/httplib2/__init__.py", line 1351, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "...myapp.../lib/httplib2/__init__.py", line 1307, in _conn_request response = conn.getresponse() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 522, in getresponse **extra_kwargs) File "...myapp.../lib/httplib2/__init__.py", line 1106, in fixed_fetch validate_certificate=validate_certificate) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 271, in fetch return rpc.get_result() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result return self.__get_result_hook(self) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 378, in _get_fetch_result rpc.check_success() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 579, in check_success self.__rpc.CheckSuccess() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_rpc.py", line 157, in _WaitImpl self.request, self.response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 201, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 227, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 247, in Send url, method=method, body=payload, headers=headers) File "...myapp.../lib/oauth2client/client.py", line 622, in new_request redirections, connection_type) File "...myapp.../lib/httplib2/__init__.py", line 1609, in request (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) File "...myapp.../lib/httplib2/__init__.py", line 1351, in _request (response, content) = self._conn_request(conn, request_uri, method, body, headers) File "...myapp.../lib/httplib2/__init__.py", line 1307, in _conn_request response = conn.getresponse() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 522, in getresponse **extra_kwargs) File "...myapp.../lib/httplib2/__init__.py", line 1106, in fixed_fetch validate_certificate=validate_certificate) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 271, in fetch return rpc.get_result() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 613, in get_result return self.__get_result_hook(self) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/urlfetch.py", line 378, in _get_fetch_result rpc.check_success() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 579, in check_success self.__rpc.CheckSuccess() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_rpc.py", line 157, in _WaitImpl self.request, self.response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 201, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 227, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 247, in Send url, method=method, body=payload, headers=headers) File "...myapp.../lib/oauth2client/client.py", line 622, in new_request redirections, connection_type) File "...myapp.../lib/httplib2/__init__.py", line 1487, in request self.disable_ssl_certificate_validation) File "...myapp.../lib/httplib2/__init__.py", line 1129, in __init__ timeout=timeout) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 562, in __init__ HTTPConnection.__init__(self, host, port, strict, timeout, source_address) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/dist27/gae_override/httplib.py", line 356, in __init__ def __init__(self, host, port=None, strict=None, File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/bdb.py", line 51, in trace_dispatch return self.dispatch_call(frame, arg) File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/bdb.py", line 77, in dispatch_call if not (self.stop_here(frame) or self.break_anywhere(frame)): File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/bdb.py", line 152, in break_anywhere return self.canonic(frame.f_code.co_filename) in self.breaks RuntimeError: maximum recursion depth exceeded
On Thursday, March 10, 2016 at 11:10:22 PM UTC-6, Danny Tran wrote: > > Some additional discoveries. > > If I set_trace() in my "view" method and step through the code. The > recursion seems to launch when executing this line: > > https://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/tools/devappserver2/python/request_handler.py#158 > > On Thursday, March 10, 2016 at 11:00:59 PM UTC-6, Danny Tran wrote: >> >> Hi Nick, >> >> Sure. >> >> I've been able to reproduce the issue using a very dumbed-down view. >> >> *app.yaml* >> ... >> - url: /.* >> script: myapp.wsgi.application >> secure: always >> ... >> >> >> *wsgi.py* >> import os >> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") >> >> >> from django.core.wsgi import get_wsgi_application >> application = get_wsgi_application() >> >> *settings.py* >> import os >> BASE_DIR = os.path.dirname(os.path.dirname(__file__)) >> VERSION = '0.1.2' >> SECRET_KEY = 'REMOVED' >> URLFETCH_TIMEOUT = 60 >> URLFETCH_VALIDATE_CERTS = True >> GAE_NAMESPACE = 'dev' >> GAE_SERVICE_ACCOUNT = { >> 'valid_app_ids': ['REMOVED'], >> } >> ROOT_URLCONF = 'myapp.urls' >> DEBUG = True >> >> *appengine_config.py* >> from google.appengine.api import urlfetch >> from google.appengine.ext import vendor >> vendor.add('lib') # oauth2client lib is installed here >> >> from google.appengine.ext.remote_api import remote_api_stub >> remote_api_stub.ConfigureRemoteApiForOAuth('myapp.appspot.com', >> '/_ah/remote_api') >> >> from django.conf import settings >> >> *urls.py* >> from django.conf.urls import patterns, include, url >> from django.shortcuts import render >> from django.http import HttpResponse >> >> def foo(request): >> return HttpResponse("foo", content_type='text/plain') >> >> >> urlpatterns = patterns('', >> url(r'^v1/foo$', foo) >> ) >> >> >> Let me know if you are able to reproduce. >> >> On Thursday, March 10, 2016 at 6:05:13 PM UTC-6, Nick (Cloud Platform >> Support) wrote: >>> >>> Hey Danny, >>> >>> I can't say that I'm 100% sure what's happening to cause this behaviour. >>> Could you share some more logs, config files, and code? If possible, I'd >>> like to try to observe this on my own system. If it represents an issue in >>> the SDK or platform, rather than a user misconfiguration, this would be >>> necessary to get it fixed, and in the event that it's a user error, I'd >>> like to help discover the proper means of getting access to remote >>> Datastore via remote API from the development machine. >>> >>> Best wishes, >>> >>> Nick >>> Cloud Platform Community Support >>> >>> On Thursday, March 10, 2016 at 11:32:32 AM UTC-5, Danny Tran wrote: >>>> >>>> I'm attempting to make my appengine application running locally use a >>>> remote datastore. >>>> >>>> In appengine_config.py I'm adding the following lines. >>>> >>>> from google.appengine.ext.remote_api import remote_api_stub >>>> remote_api_stub.ConfigureRemoteApiForOAuth('MyApp.appspot.com','/_ah/remote_api') >>>> >>>> # name removed >>>> >>>> Per the instructions here: >>>> https://cloud.google.com/appengine/docs/python/tools/remoteapi >>>> >>>> However, when I try to send a basic HTTP request to my local app, it >>>> results in an infinite recursion loop between a url fetcher and a logger. >>>> >>>> Am I missing something? >>>> >>>> -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/2db9d0b5-d9c4-4360-a911-ef4b9c70b78e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
