CrashingZopeWithOracle
John Jarvis reported to the zope-dev list:
Hi all,
I've been having severe problems with Zope stability lately.
I wanted to provide a more detailed report, but I can't seem to find out what Zope is doing when it crashes--it seems completely random. I'd file a bug report, but I'm not sure exactly what to call a bug here or if there really is a bug and not just a bad setup on my part.
Well, here goes:
Zope drops connections to Oracle DB
Based on what I saw with Zope 1, I thought that DB connections were persistent. Since moving to Zope 2, I've noticed that quite often the DB connections are lost. After watching the v$session table for a while, I noticed that when running a number of queries, Zope opens a number of connections equal to the number of Zope threads. When the traffic stops for a time (not long), these connections all disappear. Is this normal?
Often it seems that Zope can't reopen the connection and crashes or gives an error: "xxxx not connected to a database."
I thought maybe it was a setting on the DB side, but idle time, etc. is set for infinity for the Zope users. Also, this happens quite frequently under heavy use.
Zope crashes when using the
Open/Close Database Connection
button.Related to the above? Or is the above related to this?
Most often crashes after editing the connection properties or getting the "xxxx not connected to a database." error, noticing that the connection is marked as "Not Connected", and then clicking
Open Database Connection
.Zope crashes after heavy continued useage
Feeling adventurous, I wrote a script that uses ZClient? to request a query report page using random id's as search parameters. The script looks something like this:
#--------begin script
from ZPublisher import Client from time import time, ctime from random import random
i = 0 # number or passes while 1: i = i + 1 id = int(random()*1757) + 20000000 print "[" + ctime(time()) + "]", "Pass:", i, "No:", id Client.call(
http://appserver:8080/action/list_mon_detail?
'call_no='+id,anonymous
, '')#---------end script
With Zope set for four threads and five instances of the script running on a different machine, Zope will silently crash within a half hour. ZDaemon? restarts the process if it can, but no errors are reported (even in debug mode). I've also noticed that memory usage increases constantly until the crash. I still have gobs left, though.
I've noticed no difference in running through Apache/PCGI or Medusa. A typical traceback looks something like this:
#----------begin traceback
Traceback (innermost last): File "C:\PROGRA~2\hammers\HAMMER~1.PY", line 21, in ?
Client.call('http://myserver:8080/action/list_mon_detail?call_no=%i\ &lng_id=0&dsp_menubtn=on'%call_no,
anonymous
,'') File "C:\PROGRA~1\GEORGE\lib\python\ZPublisher\Client.py", line 344,\ in call return apply(Function(url,username=username, password=password),\ (), kw) File "C:\PROGRA~1\GEORGE\lib\python\ZPublisher\Client.py", line 225,\ in __call__ self.handleError(query, ec, em, headers, response) File "C:\PROGRA~1\GEORGE\lib\python\ZPublisher\Client.py", line 240,\ in handleError raise t, RemoteException(t,v,f,l,self.url,query,ec,em,response) bci.ServerError: -1 (File: Unknown Line: Unknown) -1 for http://myserver:8080/action/list_mon_detail?call_no=20000695\ &lng_id=0&dsp_menubtn=on#----------end traceback
My system:
Zope test server OS: Linux 2.2.14, glibc 2.0 CPU: Celeron 466MHz Memory: 128MB Disk Space: Gobs and Gobs Zope Version: 2.1.6 (built from source dist.) ZOracleDA Version: 2.2 (problem exists w/2.1, too) Connection Method: PCGI, Medusa Oracle Client: Net8 (from 8.0.5 dist.) Lan: 100Mbps
Zope client: OS: Windows NT Client: ZPublisher (from binary dist) Browser: Netscape 4.61 (others use IE4.0) Lan: 10Mbps
Oracle server: OS: HPUX Hardware: Bigger than my refrigerator * 2 Oracle Version: 7.3.1 Lan: 100Mbps (on same segment as Zope server)
I really wish I had more details. I'll send an update if I find anything.