[Zope] Re: URGENT: Can't start up zope

Jim Fulton jim@digicool.com
Sat, 12 Jun 1999 11:53:52 +0000


"Jay, Dylan" wrote:
> 
> > -----Original Message-----
> > From: Michel Pelletier
> > Sent: Friday, June 11, 1999 2:42 PM
> > To: 'djay@lucent.com'; zope@zope.org
> > Cc: Support
> > Subject: RE: URGENT: Can't start up zope.
> >
> >
> >
> >
> > > -----Original Message-----
> > > From: Dylan Jay [mailto:djay@cse.unsw.edu.au]
> > > Sent: Friday, June 11, 1999 2:29 PM
> > > To: zope@zope.org
> > > Cc: support@digicool.com
> > > Subject: URGENT: Can't start up zope.
> > >
> > >
> > > I was doing some external method work on our production
> > > server (silly boy)
> > > and something went very wrong. Every time I start zope it
> > > will crash. This
> > > is both as an NT service and using ZHTTPServer. ZHTTPServer
> > > gives a stack
> > > dump that mentions initializing products and factories and stuff
> > > (unfortunatly my office has a power outage currently so I
> > > can't the dump
> > > or the data.bbb until 5 hours or so). Using the bbb.py it reports no
> > > corruptions so I can only presume the database contains some
> > > configurations that screws up zope. To make matters worse our
> > > expensive
> > > backup solution doesn't seem to have backed up data.bbb.
> > >
> >
> > Can you send us this traceback?  Did a power outage occour
> > while the server was running?  Did the machine not get shut
> > down properly and this this problem happened?  Or did it just
> > happen after a clean shutdown (ie, what was the state of the
> > server before coming up the first time with this error).
> 
> No, It occured while testing an external method.
> 
> Heres the dump
> 
> C:\Program Files\Provision>..\python\python serve.py
> Traceback (innermost last):
>   File "serve.py", line 100, in ?
>     ZopeHTTPServer.main(args)
>   File "C:\Program Files\Provision\ZopeHTTPServer\ZopeHTTPServer.py", line
> 498,
> in main
>     start(module_file,host,port,threading,env)
>   File "C:\Program Files\Provision\ZopeHTTPServer\ZopeHTTPServer.py", line
> 436,
> in start
>     set_published_module(module_file,BoboRequestHandler,env)
>   File "C:\Program Files\Provision\ZopeHTTPServer\ZopeHTTPServer.py", line
> 432,
> in set_published_module
>     __import__(name) # to catch problem modules right away
>   File "C:\Program Files\Provision\lib\python\Main.py", line 103, in ?
>     Bobobase=OFS.Application.open_bobobase()
>   File "C:\Program Files\Provision\lib\python\OFS\Application.py", line 371,
> in
> open_bobobase
>     install_products(app)
>   File "C:\Program Files\Provision\lib\python\OFS\Application.py", line 486,
> in
> install_products
>     App.Product.initializeProduct(product, product_name, package_dir, app)
>   File "C:\Program Files\Provision\lib\python\App\Product.py", line 428, in
> init
> ializeProduct
>     if old is not None: products._delObject(name)
>   File "C:\Program Files\Provision\lib\python\App\Product.py", line 145, in
> _del
> Object
>     for factory in getattr(self, id)._factories(): factory._unregister()
> AttributeError: _factories

Change this loop in Product.py to:

        try:
            for factory in getattr(self, id)._factories():
                factory._unregister()
        except: pass

The product is broken, so you can't get at it's factories
(or figure out that it has none, in this case.

> 
> Now that I've had some time to debug it a little, what I discover is this.
> The above crash happens while trying to initialize the MailHost object. The
> reason is that getattr(self,id) in the call above is actually a DTML object
> not a Factory object. Somehow a piece of code got whacked in the wrong
> place.

That seems strange.

Where was the ExternalMethod you were messing with? 
What did it do?

> I can now get the site up by removing the MailHost product. However mail is
> an extermely important part of the site in that no new user can register
> without it. When a shut it down and add MailHost back in I get the same
> problem. What I need to do is somehow take out what is posing as the
> MailHost Product. I have no idea how to do this.
> 
> I will resend this mail to digicool.com with my database

I'd definiately like to look at it.

In the mean time, see if the code change above fixes the
problem.
 
Jim

--
Jim Fulton           mailto:jim@digicool.com
Technical Director   (888) 344-4332              Python Powered!
Digital Creations    http://www.digicool.com     http://www.python.org

Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email
address may not be added to any commercial mail list with out my
permission.  Violation of my privacy with advertising or SPAM will
result in a suit for a MINIMUM of $500 damages/incident, $1500 for
repeats.