TG installs WebError to give the nice debugging 
tracebacks in the browser.

For default  projects, development.ini has 

set debug = True 

which gives the traceback in the browser. Recently we have defaulted this
to false which then sends errors as emails and is more secure for 
productions sites.  Turns out this changes the behavior of streaming
applications When debug is true, streaming apps
are actually fully collected into a list before being returned[1].
Now that it is false, it is actually returning an iterator[2].
Depending on debug either errormiddleware or evalexception is
placed on the WSGI stack[3].

We noticed that  exposed methods that return iterators 
now lost access to  several variables 
notably. tg.request and tg.response and all the thread-local variables 
usually there. 

During the TG application setup a Registry middleware component is added
that pushes on request entry and pops on response these thread-local  
variables.  This component has a streaming option (that defaults 
to false)[4][5].   Without the streaming option, the request
object is popped as soon as the method returns even though
the iterator is still returned up for processing. 

Sooo.. if your application needs to return iterators:

1.  set debug = true in site.cfg 
2. or patch [4] to read 
          app = RegistryManager(app, True)

Can't seem to find a ticket system to file this..


[1] WebError-0.10.3-py2.6.egg/weberror/evalexception.py:438
[2] WebError-0.10.3-py2.6.egg/weberror/errormiddleware.py:163
[3] TurboGears2-2.1.4-py2.6.egg/tg/error.py:89
[4] TurboGears2-2.1.4-py2.6.egg/tg/configuration.py:970
[5] Paste-1.7.5.1bisque1-py2.6.egg/paste/registry:367




-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/turbogears/-/VKSZodbWJkUJ.
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/turbogears?hl=en.

Reply via email to