[Zope] Zope hangs and Python eats all memory

Nico Grubert nicogrubert at gmail.com
Fri Feb 9 02:56:35 EST 2007


>I am running Zope 2.9.6. on a 64-Bit Suse Linux 10.1 machine (9 Gbyte of 
>RAM) with Python 2.4.3. installed.
>From time to time, Zope hangs and I cannot access it anymore. I tried 
>to use the "Zope DeadlockDebugger" but if my Zope hangs I cannot call 
>the URL "http://myzopesite:8080/manage_debug_threads?secret_password" to 
>let Zope DeadlockDebugger show any useful information. Zope does not 
>response.
>If Zope hangs, the python process eats all the memory and the machine 
>starts to swap.

I think I have found the reason for this problem:

   The problem comes from a python segmentation fault caused by either
   "egenix mxODBCDA" database adapter or "Easysoft ODBC-ODBC Bridge".


Here is a short description about the problem:
---------------------------------------------------------------------------
 From a linux machine I am accessing a remote windows 2003 server machine
to query a Filemaker Pro database. I have "Easysoft ODBC-ODBC Server 
2.0.6 for Windows" installed in my windows machine.

On my linux machine I use the "unixODBC" (Easysoft ODBC-ODBC Client 
2.0.6 for Linux) driver and the Zope product "mxODBCZopeDA" to query the 
Filemaker Database.

After I started Zope and make a few SQL queries, the Zope server shuts
down with a "Segmentation fault".
At the same time there is a log entry on my linux machine in
/var/log/messages that reads:
Jan 23 10:43:09 smut kernel: python[6231]: segfault at 00000000ffffffff
rip 000000000043c0d7 rsp 00000000417f6ad0 error 4

 From time to time Zope even hangs and eats all memory until the whole 
machine hangs completely. Every time this happen, the last entry in 
<zope_instance>/log/trace.log is a request to a Zope Page Template where 
a ZSQL method is called to query the ODBC source (Filemaker). At the 
same time there is a "python segmentation fault" log entry on my linux 
machine in /var/log/messages.

One of the developers of the "mxODBCZopeDA" product told me the error is
definitely coming from the ODBC-ODBC bridge.

However, I can query the Filemaker database and get nice results but
after a while my Zope server shuts down with the error messages above. I
don't do any SQL INSERT or SQL UPDATE. I just do some SQL
"SELECT...FROM...WHERE..." queries.

My setup:
   + 64-Bit Suse Linux 10.1 Professional
   + unixODBC & unixODBC-devel 2.2.11
   + Easysoft ODBC-ODBC Client 2.0.6 for Linux
   + Easysoft ODBC-ODBC Server 2.0.6 for Windows
   + ODBC Source: Filemaker Pro 8 Advanced Server on a Windows2003 Server
   + Python 2.4.3.
   + Zope 2.9.6.
   + mxODBCZopeDA 1.0.10


On a 32-Bit Suse 9.2 with unixODBC & unixODBC-devel 2.2.9, Python 2.5.3. 
and Zope 2.8.8. installed this error never occured. The segmentation 
fault only occurs on my 64 bit OS as described above.

I'm waiting for an answer from the Easysoft ODBC-ODBC support but I'm 
gonna try to update Python 2.4.3. to 2.4.5. in order to see if it may 
solve the problem.


Thanks to Dieter, Suresh and Paul.

Nico


More information about the Zope mailing list