Ticket #718 (defect)
Opened 1 year ago
Last modified 9 months ago
High count of uncollectable objects
Status: closed (fixed)
| Reported by: | fumanchu | Assigned to: | fumanchu |
|---|---|---|---|
| Priority: | highest | Milestone: | 3.0 |
| Component: | CherryPy code | Keywords: | |
| Cc: |
The 3.0.x branch is failing the threadlocal_garbage test with 768 unreachable objects.
My initial guess is that the Request.prev attribute is the culprit.
Change History
08/24/07 12:41:49: Modified by fumanchu
- priority changed from high to highest.
- status changed from new to assigned.
08/25/07 11:20:02: Modified by fumanchu
Workarounds for all 3.x versions:
- If you're not using InternalRedirects at all, remove the InternalRedirector from the WSGI pipeline (this'll give you more requests-per-second to boot):
app = cherrypy.tree.mount(root, '/', appconf) app.pipeline.remove(('iredir', InternalRedirector))
- If you need InternalRedirects, but don't need to access the chain of previous Request objects as you redirect, just comment out all code which references the .prev attribute of the Request object.
A more complete fix on the way, and should be available in both trunk and 3.0.3.
08/25/07 15:11:34: Modified by fumanchu
- description changed.
Most of the work done in [1711]. the wsgi_ns test is still leaking one Request/Response pair, as is the wsgiapps test.
09/27/07 16:39:10: Modified by fumanchu
10/29/07 00:30:07: Modified by fumanchu
Final trunk fix in [1804], proving yet again that WSGI 1.0 middleware is pretty much required to be implemented as an (App class, Response class) pair if close() is to be called correctly throughout the WSGI stack.
10/29/07 00:43:49: Modified by fumanchu
- status changed from assigned to closed.
- resolution set to fixed.
Final 3.0.x fix in [1805].


As of [1710], the 3.0 branch now includes a refleak test early in the main test suite.