Greetings fine peoples,
I'm trying to use apptrace
(http://code.google.com/p/apptrace/wiki/UsingApptrace) to find memory leaks
in my web2py GAE application. (i know they are there cause i get requests
killed for out of memory). I followed the instructions for installing
apptrace and i can import guppy.heapy.heapyc at the python2.5 prompt, but
when i try to run the code in the GAE dev server i get the following:
ERROR 2011-12-20 18:59:46,483 dev_appserver.py:2785] Exception
encountered handling request
Traceback (most recent call last):
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py",
line 2726, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py",
line 2611, in _Dispatch
base_env_dict=env_dict)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py",
line 653, in Dispatch
base_env_dict=base_env_dict)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py",
line 1675, in Dispatch
self._module_dict)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py",
line 1575, in ExecuteCGI
reset_modules = exec_script(config, handler_path, cgi_path, hook)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py",
line 1277, in ExecuteOrImportScript
exec module_code in script_module.__dict__
File "/Users/cfhowes/clients/rockriver/source/gae/web2py/gaehandler.py",
line 101, in <module>
main()
File "/Users/cfhowes/clients/rockriver/source/gae/web2py/gaehandler.py",
line 98, in main
run_wsgi_app(wsgiapp)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/util.py",
line 98, in run_wsgi_app
run_bare_wsgi_app(add_wsgi_middleware(application))
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/util.py",
line 116, in run_bare_wsgi_app
result = application(env, _start_response)
File "routermiddleware.py", line 61, in __call__
resp = req.get_response(self.app)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webob/webob/__init__.py",
line 1216, in get_response
application, catch_exc_info=False)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webob/webob/__init__.py",
line 1188, in call_application
output.extend(app_iter)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/appstats/recording.py",
line 926, in appstats_wsgi_wrapper
result = app(environ, appstats_start_response)
File
"/Library/Python/2.5/site-packages/apptrace-0.2.3-py2.5.egg/apptrace/middleware.py",
line 116, in wsgi_app
if record: recorder.trace()
File
"/Library/Python/2.5/site-packages/apptrace-0.2.3-py2.5.egg/apptrace/instruments.py",
line 174, in trace
hp = hpy()
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/__init__.py",
line 37, in hpy
return r.guppy.heapy.Use
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 45, in __getattr__
return self._share.getattr(self, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 195, in getattr
d = self.getattr2(inter, cache, owner, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 213, in getattr2
x = self.getattr_package(inter, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 261, in getattr_package
x = self.makeModule(x, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 321, in makeModule
return Share(module, self, module.__name__, Clamp)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 184, in __init__
getattr(inter, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 45, in __getattr__
return self._share.getattr(self, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 195, in getattr
d = self.getattr2(inter, cache, owner, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 215, in getattr2
x = self.getattr3(inter, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 283, in getattr3
pa = getattr(pa, at)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 45, in __getattr__
return self._share.getattr(self, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 195, in getattr
d = self.getattr2(inter, cache, owner, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 213, in getattr2
x = self.getattr_package(inter, name)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/etc/Glue.py",
line 250, in getattr_package
x = __import__(self.makeName(name), globals(), locals())
File
"/Users/cfhowes/clients/rockriver/source/gae/web2py/gluon/custom_import.py",
line 286, in __call__
fromlist, level)
File
"/Users/cfhowes/clients/rockriver/source/gae/web2py/gluon/custom_import.py",
line 80, in __call__
level)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py",
line 662, in Decorate
return func(self, *args, **kwargs)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py",
line 1818, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py",
line 662, in Decorate
return func(self, *args, **kwargs)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py",
line 1690, in FindAndLoadModule
description)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py",
line 662, in Decorate
return func(self, *args, **kwargs)
File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py",
line 1633, in LoadModuleRestricted
description)
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/heapy/View.py",
line 555, in <module>
prime_builtin_types()
File
"/Library/Python/2.5/site-packages/guppy-0.1.9-py2.5-macosx-10.6-x86_64.egg/guppy/heapy/View.py",
line 538, in prime_builtin_types
import guppy.heapy.heapyc
File
"/Users/cfhowes/clients/rockriver/source/gae/web2py/gluon/custom_import.py",
line 286, in __call__
fromlist, level)
File
"/Users/cfhowes/clients/rockriver/source/gae/web2py/gluon/custom_import.py",
line 80, in __call__
level)
ImportError: No module named heapyc
it seems that somehow custom importer can't find this item that is on my
pythonpath. any ideas where/how i can fix that? Since this is for
temporary debugging i can modify things in web2py during my tests if need
be.
thanks much!
christian