The tracebacks are quite different. Cc'ing Ben, MikeB, and IanB to see
if they can see the problem. The second one (Pylons 0.9.7, which is
correct) is a Mako web traceback so the direction is reversed
(innermost on top), and several outer layers appear to be suppressed
(outermost layer is WebError).

The first one (Pylons 0.10rc1) is a console traceback: the web
traceback could not be produced for some reason. It shows a different
path from WebError.evalexception through the 'tmpl_formatter'
variable, which goes into Mako again and then bombs on a 'line'
variable in mako/exceptions.py, which is supposed to be a string but
is None. I don't know if that's related to "${undefined}" in the
original template or not.

If you're familiar with the Python debugger, I'd be interested to see
the value of 'line' in mako/exceptions.py line 166, and
'tmpl_formatter' and 'self.exc_value' in weberror/evalexception.py
line 545, as well as the value of 'template' in mako/runtime.py line
402. Those might give a clue as to why it's doing that. I suspect it
was trying to format another exception when this exception occurred
and obliterated it.

I'm not sure if the debugger works with a Pylons application. If you
can't get it to, you can email me a tarball of the app and I'll see if
I can get anything out of it.



On Sat, Mar 20, 2010 at 7:43 PM, cd34 <[email protected]> wrote:
> 0.9.7 appeared to catch everything.  I've never seen the <h1> or text/
> plain error message prior to 1.0rc1
>
> And I did -t pylons based on your initial posting, merged in the .bak
> files using diff to identify the sections.
>
> paster console log:
>
> Exception happened during processing of request from ('xx.xx.xx.xx',
> 64217)
> Traceback (most recent call last):
>  File "/var/www/pylons/lib/python2.5/site-packages/Paste-1.7.2-
> py2.5.egg/paste/httpserver.py", line 1062, in
> process_request_in_thread
>    self.finish_request(request, client_address)
>  File "/usr/lib/python2.5/SocketServer.py", line 254, in
> finish_request
>    self.RequestHandlerClass(request, client_address, self)
>  File "/usr/lib/python2.5/SocketServer.py", line 522, in __init__
>    self.handle()
>  File "/var/www/pylons/lib/python2.5/site-packages/Paste-1.7.2-
> py2.5.egg/paste/httpserver.py", line 436, in handle
>    BaseHTTPRequestHandler.handle(self)
>  File "/usr/lib/python2.5/BaseHTTPServer.py", line 316, in handle
>    self.handle_one_request()
>  File "/var/www/pylons/lib/python2.5/site-packages/Paste-1.7.2-
> py2.5.egg/paste/httpserver.py", line 431, in handle_one_request
>    self.wsgi_execute()
>  File "/var/www/pylons/lib/python2.5/site-packages/Paste-1.7.2-
> py2.5.egg/paste/httpserver.py", line 287, in wsgi_execute
>    self.wsgi_start_response)
>  File "/var/www/pylons/lib/python2.5/site-packages/Paste-1.7.2-
> py2.5.egg/paste/cascade.py", line 130, in __call__
>    return self.apps[-1](environ, start_response)
>  File "/var/www/pylons/lib/python2.5/site-packages/Paste-1.7.2-
> py2.5.egg/paste/registry.py", line 350, in __call__
>    app_iter = self.application(environ, start_response)
>  File "/var/www/pylons/lib/python2.5/site-packages/Pylons-0.10rc1-
> py2.5.egg/pylons/middleware.py", line 200, in __call__
>    self.app, environ, catch_exc_info=True)
>  File "/var/www/pylons/lib/python2.5/site-packages/Pylons-0.10rc1-
> py2.5.egg/pylons/util.py", line 91, in call_wsgi_application
>    app_iter = application(environ, start_response)
>  File "/var/www/pylons/lib/python2.5/site-packages/WebError-0.10.2-
> py2.5.egg/weberror/evalexception.py", line 235, in __call__
>    return self.respond(environ, start_response)
>  File "/var/www/pylons/lib/python2.5/site-packages/WebError-0.10.2-
> py2.5.egg/weberror/evalexception.py", line 483, in respond
>    return debug_info.content()
>  File "/var/www/pylons/lib/python2.5/site-packages/WebError-0.10.2-
> py2.5.egg/weberror/evalexception.py", line 545, in content
>    result = tmpl_formatter(self.exc_value)
>  File "/var/www/pylons/lib/python2.5/site-packages/Pylons-0.10rc1-
> py2.5.egg/pylons/error.py", line 43, in mako_html_data
>    css=False)
>  File "/var/www/pylons/lib/python2.5/site-packages/Mako-0.3.1-
> py2.5.egg/mako/template.py", line 189, in render
>    return runtime._render(self, self.callable_, args, data)
>  File "/var/www/pylons/lib/python2.5/site-packages/Mako-0.3.1-
> py2.5.egg/mako/runtime.py", line 402, in _render
>    _render_context(template, callable_, context, *args, **data)
>  File "/var/www/pylons/lib/python2.5/site-packages/Mako-0.3.1-
> py2.5.egg/mako/runtime.py", line 419, in _render_context
>    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
>  File "/var/www/pylons/lib/python2.5/site-packages/Mako-0.3.1-
> py2.5.egg/mako/runtime.py", line 442, in _exec_template
>    callable_(context, *args, **kwargs)
>  File "memory:0xace05cc", line 54, in render_body
>  File "/var/www/pylons/lib/python2.5/site-packages/Mako-0.3.1-
> py2.5.egg/mako/exceptions.py", line 88, in __init__
>    self.records = self._init(traceback)
>  File "/var/www/pylons/lib/python2.5/site-packages/Mako-0.3.1-
> py2.5.egg/mako/exceptions.py", line 166, in _init
>    line = line.decode('ascii', 'replace')
> AttributeError: 'NoneType' object has no attribute 'decode'
>
>
> 0.9.7 captures it with the :
>
> Error !
> NameError: Undefined
>
> 5 </%def>
> 6
> 7 <%def name="body()">
> 8 ${unknown}
> 9
> 10 test
> 11 asdf
> 12
> 13 </% def>
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> runtime.py, line 128:
> raise NameError("Undefined")
> /var/www/pylons/lib/python2.5/site-packages/WebHelpers-1.0b1-py2.5.egg/
> webhelpers/html/builder.py, line 358:
> return literal(cgi_escape(unicode(val), True))
> /var/www/pylons/cp/cp/templates/test_flash.mako, line 8:
> ${unknown}
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> runtime.py, line 255:
> return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
> /var/www/pylons/cp/cp/templates/template.mako, line 25:
> ${self.body()}
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> runtime.py, line 397:
> callable_(context, *args, **kwargs)
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> runtime.py, line 405:
> result = template.error_handler(context, error)
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> runtime.py, line 381:
> _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> runtime.py, line 364:
> _render_context(template, callable_, context, *args,
> **_kwargs_for_callable(callable_, data))
> /var/www/pylons/lib/python2.5/site-packages/Mako-0.2.5-py2.5.egg/mako/
> template.py, line 138:
> return runtime._render(self, self.callable_, args, data,
> as_unicode=True)
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/templating.py, line 271:
> return literal(template.render_unicode(**globs))
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/templating.py, line 249:
> return render_func()
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/templating.py, line 274:
> cache_type=cache_type, cache_expire=cache_expire)
> /var/www/pylons/cp/cp/controllers/test.py, line 73:
> return render('/test_flash.mako')
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/controllers/core.py, line 60:
> return func(**args)
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/controllers/core.py, line 107:
> result = self._perform_call(func, args)
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/controllers/core.py, line 172:
> response = self._inspect_call(func)
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/controllers/core.py, line 221:
> response = self._dispatch_call()
> /var/www/pylons/cp/cp/lib/base.py, line 18:
> return WSGIController.__call__(self, environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/wsgiapp.py, line 324:
> return controller(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/Pylons-0.9.7-py2.5.egg/
> pylons/wsgiapp.py, line 125:
> response = self.dispatch(controller, environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/Routes-1.11-py2.5.egg/
> routes/middleware.py, line 130:
> response = self.app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/Beaker-1.4.2-py2.5.egg/
> beaker/middleware.py, line 152:
> return self.wrap_app(environ, session_start_response)
> /var/www/pylons/lib/python2.5/site-packages/Beaker-1.4.2-py2.5.egg/
> beaker/middleware.py, line 73:
> return self.app(environ, start_response)
> build/bdist.linux-i686/egg/webob/__init__.py, line 1293:
> None
> build/bdist.linux-i686/egg/webob/__init__.py, line 1325:
> None
> /var/www/pylons/lib/python2.5/site-packages/ToscaWidgets-0.9.8-
> py2.5.egg/tw/core/resource_injector.py, line 68:
> resp = req.get_response(app)
> build/bdist.linux-i686/egg/webob/__init__.py, line 1293:
> None
> build/bdist.linux-i686/egg/webob/__init__.py, line 1325:
> None
> /var/www/pylons/lib/python2.5/site-packages/ToscaWidgets-0.9.8-
> py2.5.egg/tw/core/middleware.py, line 68:
> resp = req.get_response(self.application)
> /var/www/pylons/lib/python2.5/site-packages/ToscaWidgets-0.9.8-
> py2.5.egg/tw/core/middleware.py, line 43:
> return self.wsgi_app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/__init__.py, line 425:
> return self.application(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/__init__.py, line 321:
> return self.app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/__init__.py, line 344:
> return self.app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/__init__.py, line 176:
> return self.app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/multi.py, line 55:
> return self.default(environ, find)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/multi.py, line 87:
> app_iter = app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/cookie.py, line 480:
> return self.app(environ, cookie_setting_start_response)
> /var/www/pylons/lib/python2.5/site-packages/AuthKit-0.4.5-py2.5.egg/
> authkit/authenticate/__init__.py, line 331:
> return self.app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/SQLAlchemyManager-0.1.0-
> py2.5.egg/sqlalchemymanager/__init__.py, line 84:
> return self.app(environ, start_response)
> /var/www/pylons/lib/python2.5/site-packages/WebError-0.10.1-py2.5.egg/
> weberror/evalexception.py, line 431:
> app_iter = self.application(environ, detect_start_response)
>
> So, the behavior did change.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "pylons-discuss" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/pylons-discuss?hl=en.
>
>



-- 
Mike Orr <[email protected]>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to