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.

Reply via email to