History for CrashingZopeWithOracle
??changed:
-
"John Jarvis":mailto:[email protected] 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.