On Fri, 12 Mar 2010, Mark Sapiro wrote:

There is an issue that affects memory usage in the qrunners. They keep
a cache of list objects in memory to reduce disk IO. The cache is
supposed to free the space used by a list object when there are no
more references to that object, but it turns out there is a
self-reference in the list objects, so the cache simply grows until it
holds a copy of each list.

There are other issues in that large messages can cause the runners
that handle it to grow, and Python's memory management is such that
Python itself never gives freed memory back to the OS. Memory can be
freed within Python and it will be available for reuse within that
process, but it is not given back to the OS.

I recommend disabling the list cache within the qrunners. This was done
for the now defunct 2.2 branch, but has not been done on the 2.1
branch.

The attached Runner.patch.txt file contains a patch to do this. I
suggest you try the patch and see if that helps.

Thanks for this.

I patched Mailman/Queue/Runner.py and the patch applied cleanly. I even checked that the patch had applied.

I stopped and restarted Mailman.

But Runner.pyc wasn't updated.

I deleted Runner.pyc in order to make sure that the old one wasn't being used, but 17 hours on, Runner.pyc hasn't been recreated.

The system seems to be running fine from what I've seen, but I'm curious to know if the file I'm patched is in fact being used at all.

Geoff.

------------------------------------------------------
Mailman-Users mailing list [email protected]
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Reply via email to