[Zope] Corrupt Bobo Database?

Tim Hawes tim.hawes@ncmail.net
Thu, 06 May 1999 13:58:46 -0400


This is a multi-part message in MIME format.
--------------E6F6D47FEBC72BBBE83FD16E
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Zope was running fine until a couple days ago. It seemed to have locked
up. I tried restarting pcgi,
but got a SERIOUS APPLICATION ERROR when I tried to re-connect. This is
what I found in the log file:

Tue May  4 13:21:03 1999  unable to publish module
  Traceback (innermost last):
  File "/usr/local/https/Zope/pcgi/pcgi_publisher.py", line 301, in
handler

self.publish_module(self.moduleName,stdin=stdin,stdout=stdout,stderr=stderr,environ=env)

  File "/usr/local/https/Zope/lib/python/ZPublisher/Publish.py", line
878, in publish_module
    debug=debug)
  File "/usr/local/https/Zope/lib/python/ZPublisher/Publish.py", line
325, in publish
    (bobo_before, bobo_after, request_params,
  File "/usr/local/https/Zope/lib/python/ZPublisher/Publish.py", line
616, in get_module_info
    module=__import__(module_name, globals(), globals(), ('__doc__',))
  File "/usr/local/https/Zope/lib/python/Main.py", line 103, in ?
    Bobobase=OFS.Application.open_bobobase()
  File "/usr/local/https/Zope/lib/python/OFS/Application.py", line 319,
in open_bobobase
    Bobobase=Globals.Bobobase=Globals.PickleDictionary(
  File "/usr/local/https/Zope/lib/python/BoboPOS/PickleDictionary.py",
line 159, in __init__
    db=apply(DBType,(),storage_options)
  File "/usr/local/https/Zope/lib/python/BoboPOS/SimpleDB.py", line 221,
in __init__
    self.open(file_name,create,revision_time,meta_index,read_only)
  File "/usr/local/https/Zope/lib/python/BoboPOS/SimpleDB.py", line 287,
in open
    try: self.index,self.pos=read_index(
  File "/usr/local/https/Zope/lib/python/BoboPOS/SimpleDB.py", line
1365, in read_index
    raise DatabaseError, ('Corrupted data record at %s' % pos)
ImportError: ('DatabaseError', 'Corrupted data record at 224044315')

I did not have much in the database, and it did fine after I moved all
the database files into a new directory (except, of course, I had to
start with a clean slate).

Questions:

1) What might have caused this corruption? Two people logged in as admin
(superuser) at the same time? Running a seperate instance of Zope (the
latest CVS version) in another directory?

2) Can a corrupted bobobase file be fixed relatively easily (i.e.
without an hex editor)?

I am not fond of the idea of building an enterprise-wide web site with
tens to hundreds developers working on the same site, and then see the
whole thing get flushed down the toilet by the corruption of one file.

Possible remedies might include creating a seperate database file for
each division. But then how is acl security maintained throughout the
site? Can one database use objects from another?

Ideas, or answers?

Tim Hawes
tim.hawes@ncmail.net

--

Tim Hawes
tim.hawes@ncmail.net



--------------E6F6D47FEBC72BBBE83FD16E
Content-Type: text/x-vcard; charset=us-ascii;
 name="tim.hawes.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Tim Hawes
Content-Disposition: attachment;
 filename="tim.hawes.vcf"

begin:vcard 
n:Hawes;Tim
tel;work:919-733-8839
x-mozilla-html:TRUE
url:http://jazz.dhhs.state.nc.us
org:Metamor Worldwide;DHHS NWS
adr:;;;;;;
version:2.1
email;internet:tim.hawes@ncmail.net
title:Technical Consultant
x-mozilla-cpt:;0
fn:Tim Hawes
end:vcard

--------------E6F6D47FEBC72BBBE83FD16E--