[Zope] Zope woes continue - server going down regularly. (possible
solution)
Tres Seaver
tseaver@palladion.com
Wed, 08 Dec 1999 15:18:48 -0600
Michel Pelletier <michel@digicool.com> wrote:
> > -----Original Message-----
> > From: Cayce Ullman [mailto:c_ullman@yahoo.com]
> > Sent: Wednesday, December 08, 1999 11:26 AM
> > To: zope@zope.org; panda@skinnyhippo.com
> > Subject: [Zope] Zope woes continue - server going down regularly.
> > (possible solution)
> >
> >
> > >>> Alternatively, the server just hangs and doesn't
> > respond
> > >>> (but ps -aux shows the process is running).
> > >>
> > >>Is it spinning? (consuming 100% CPU resources?) or
> > hung? (consuming
> > >>none..)
> >
> > I noticed a couple of weeks ago that my Zope,
> > started spinning when I hit a certain page 5 or
> > 6 times. I noticed that this page was different
> > from the others as it tried to do a Zope.app().
> > This was interesting cause the actual Zope.app()
> > call worked, except it would eventually hose the
> > server. I figured I was just doing something wrong
> > and figured out another way to do it. Anyway,
> > here's how to reproduce the problem :
> >
> > Create a external method that looks like this :
> >
> > import Zope
> >
> > def helloworld(self):
> > x = Zope.app()
> > return "Hello World"
>
> This is because the connection gets opened, but never closed. Zope 2.x
> is hardwired to have only 7 available database connections. We'll
> probably add a knob in 2.2 that lets you configure the number of db
> connections. In either case, the problem is not the hardwiring, the
> problem is that your code has a bug in it, because you do not free the
> resource you are consuming. Do an:
>
> x.close()
>
> at the end of your method and you won't run out of connections.
There is stuff in ZODB.ZApplication.py which looks as though it should not be
necessary to close a ZODB connection manually:
conn=db.open(version)
# arrange for the connection to be closed when the request goes away
cleanup=Cleanup()
cleanup.__del__=conn.close
REQUEST._hold(cleanup)
Am I misreading this? Or do we have a refcount cycle in here somewhere?
--
================================================================================
Tres Seaver tseaver@palladion.com http://www.palladion.com
Palladion Software Houston, Texas, USA 713-523-6582