Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Ticket #718 (defect)

Opened 1 year ago

Last modified 10 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.

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

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

Fixed in trunk in [1727], [1729], [1730], and [1731].

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].

Hosted by WebFaction

Log in as guest/cpguest to create tickets