Hash: SHA1

On 01/26/2011 03:19 PM, Jonathan Salazar Santos wrote:
> Hi Comunity,
> I have been in troubles with Zope2.10.5-final since 4 moths ago,
> related to the "MemoryError: out of memory" (in the event.log), every
> three or fourth days (more or less) the Zope starts to say in our web:
> value error: Memory, and stops to serve some pages (not all), usually
> the pages that serve file contents (to download, convert to pdf or
> view online). I solve the problem (when appears) by rebooting the zope
> server, but its not a solutions, because I dont know when the error
> its coming ┬┐Can you help me to giving me some light to solve the
> problem? I have 2gb of RAM, and the server (FreeBSD) it says
> no-overloaded, just have 2 services, web(zope) and database(mysql). I
> think its something related to the cache memory or kind of (I changed
> some values in config file but not success). See some of my event.log
> Traceback (innermost last):
>   Module ZPublisher.Publish, line 119, in publish
>   Module ZPublisher.mapply, line 88, in mapply
>   Module ZPublisher.Publish, line 42, in call_object
>   Module OFS.DTMLMethod, line 144, in __call__
>    - <DTMLMethod at /xxxx/index_html used for 
> /xxxx/suscribete/adminNewsletter>
>    - URL: http://xxxx/index_html/manage_main
>    - Physical Path: /xxxx/index_html
>   Module DocumentTemplate.DT_String, line 476, in __call__
>   Module OFS.DTMLMethod, line 137, in __call__
>    - <DTMLMethod at /xxxx/suscribete/adminNewsletter/third_header>
>    - URL: http://xxxx/suscribete/adminNewsletter/third_header/manage_main
>    - Physical Path: /xxxx/suscribete/adminNewsletter/third_header
>   Module DocumentTemplate.DT_String, line 476, in __call__
>   Module DocumentTemplate.DT_In, line 703, in renderwob
>   Module Products.MailHost.SendMailTag, line 114, in render
>   Module Products.MIMETools.MIMETag, line 198, in render
>   Module MimeWriter, line 177, in lastpart
> MemoryError: out of memory

The "aliases" feature of the stock Shared.DC.ZRDB.Results.Results class
has a leak, due to an uncollectable cycle created between the alias
objects and the record class generated *for each query*.  If your app
makes heavy use of stock ZSQL methods, you are probably going to have to
plan to monitor the server's RAM usage and reboot as it gets close to
the limit.

If you are confident either that your application does not need the
alias feature (your SQL queries all spell the column names using the
"canonical" spelling for your SQL server), or that you can modify them
to do so, you might try applying the attached patch, which removes the
aliase feature.

- -- 
Tres Seaver          +1 540-429-0999          tsea...@palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

=== modified file 'lib/python/Shared/DC/ZRDB/Results.py'
--- lib/python/Shared/DC/ZRDB/Results.py	2005-11-18 14:39:19 +0000
+++ lib/python/Shared/DC/ZRDB/Results.py	2011-01-27 16:09:13 +0000
@@ -38,7 +38,6 @@
-        aliases=[]
         if zbrains is None: zbrains=NoBrains
         for item in items:
@@ -49,10 +48,6 @@
             if schema.has_key(name):
                 raise ValueError, 'Duplicate column name, %s' % name
-            n=name.lower()
-            if n != name: aliases.append((n, SQLAlias(name)))
-            n=name.upper()
-            if n != name: aliases.append((n, SQLAlias(name)))
@@ -70,11 +65,6 @@
             if k[:2]=='__':
-        # Add SQL Aliases
-        for k, v in aliases:
-            if not hasattr(r, k):
-                setattr(r, k, v)
         if hasattr(brains, '__init__'):
             if hasattr(binit,'im_func'): binit=binit.im_func

Zope maillist  -  Zope@zope.org
**   No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to