[Zope] New SybaseDA, memory leaks etc.

Alex Schonfeld alex@garage.co.jp
Thu, 27 Jan 2000 11:00:40 +0900


Just wanted to mention I got results similar to Sascha Matzke under WinNT
with the newest Zope release (2.1.3).  

My setup was a little different:
  I tried testing using Socrates to do multiple connections and request around
5000 documents using 10 connections requesting docs with a 50ms delay
between requests. This caused python to start serious page faulting and
grab around 100megs+ over 2-3 minutes. Eventually it ran out of memory
and crashed.  The old da doesn't cause this problem under a similar test.

Some stats on the tests I tried:
	1. tried it with transactions on and off... with similar results
	2. sometimes there is a traceback and sometimes not (see below)
	3. Zope version: Zope 2.1.0b2 (binary release, python 1.5.2, win32-x86) 
	4. Python version: 1.5.2 (#0, Jul 30 1999, 09:52:18) [MSC 32 bit
(Intel)] 
	5. System Platform: win32
	6. limited Zope threads to 10 in all tests
	7. cache was set to 60 secs (not sure if that is relevant..)
	8. the sybase server was on the same lan and didn't experience
any serious problems (maybe some slow down, but since no-one complained
I suspect it was still useable.. :)

I suspect (and have been told) that it has to do with the C code part of
the DA which is not freeing connections to Sybase correctly or maybe not
freeing all the memory allocated in buffers for all the data it
requests.  It might be that the python code is not always calling the
correct methods in the dll to close the connection.

The testing tool I used for windows was at:
http://www.morphtech.com/morphtech/socrates/home.morph (seems to be gone
now)
Some other tools:
http://www.softwareqatest.com/qatweb1.html#LOAD

Sincerely,

Alex.

One of the trace backs looked like this:
***********************************
------
2000-01-25T03:18:31 PROBLEM(100) ZServer Computing default hostname
------
2000-01-25T03:18:31 INFO(0) ZServer Medusa (V1.13) started at Tue Jan 25 12:18:31 2000
	Hostname: PEAR
	Port:8080

------
2000-01-25T03:18:31 INFO(0) ZServer FTP server started at Tue Jan 25 12:18:31 2000
	Authorizer:None
	Hostname: pear
	Port: 8021
------
2000-01-25T03:18:31 INFO(0) ZServer Monitor Server (V1.5) started on port 8099
------
Traceback (innermost last):
  File "z2.py", line 595, in ?
    asyncore.loop()
  File "C:\Program Files\Python\Lib\asyncore.py", line 107, in loop
    if use_poll:
  File "C:\Program Files\Python\Lib\asyncore.py", line 55, in poll
    (r,w,e) = select.select (r,w,e, timeout)
SystemError: NULL result without error in call_object
************************
 
1010011010
0  Digital Garage
1  Alex Schonfeld
0  alex@garage.co.jp - pear
1  090-4429-2323