Ah, found the source of the leaks: the files that aren't being freed are
created in /usr/lib/python2.3/site-packages/svn/fs.py, not in
/usr/lib/python2.3/site-packages/track/util.py as I suspected earlier.
I've tested it by changing the filename prefix and waiting for the
problem to occur again.  The problem is definitely occurring in the
context of Trac, however, and I haven't a clue which party is to blame.

I've tested a patch on the theory that perhaps the object "differ"--the
suspicious stretch of code occurs twice in that file--was sometimes
garbage-collected (and the temp files deleted) before the child diff
process could access them, but referencing "differ" after the diff has
completed does not fix the problem.  I'm no Python expert.

There is also a security angle to this problem: the leaking files have
been connected to a very nasty server outage triggered by http queries
on the Trac interface.  In that case, /tmp was mounted on tmpfs and
filled up available memory.  That would make this bug a DoS risk.


Jeroen



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to