[Zope-dev] Weird thing happend with "Pack"

Erik Enge erik@enge.net
05 Aug 2000 14:46:04 +0200


Hi.

I was fiddling around with my Zope-instance, and decided to Pack the
database, I had just deleted a lot of objects and the Data.fs was reported
to be about 15MB large; which I knew couldn't be true.

Under Control_Panel/Database I pressed the "Pack" button with "days older
than" set to '0'.  Ahh, the Data.fs became about 500k, that's more like   
it.  For some odd reason, I decided to enter '3' at "days older than"
and press "Pack".  Dunno why.

After I did that it got ugly.  Now it reported that the Data.fs was
about 400k.  Hm, I thought, and checked the var/ directory.  It was
smaller...  strange.  I decided to check if the rest of my site was
still ok, but it wasn't.  When got into localhost/manage every object
had their titles changed to 'L'.  A bit odd.  Very inconvinient. :)

Hpmf, I thought while I cleverly scratched my head.  I tried to enter
one of these 'L'-ified objects, but now it didn't respond at all.  I
tried to kill the python process, but it had already died.  Tried to
start it, this is what I got:

        Traceback (innermost last):
          File "z2.py", line 436, in ?
            exec "import "+MODULE in {}
          File "<string>", line 1, in ?
          File "/usr/share/zope/lib/python/Zope/__init__.py", line 130, in ?
            OFS.Application.initialize(c)
          File "/usr/share/zope/lib/python/OFS/Application.py", line 171, in initialize
            app.Control_Panel.initialize_cache()
          File "/usr/share/zope/lib/python/ZODB/Connection.py", line 391, in setstate
            p, serial = self._storage.load(oid, self._version)
          File "/usr/share/zope/lib/python/ZODB/FileStorage.py", line 584, in load
            try: return self._load(oid, version, self._index, self._file)
          File "/usr/share/zope/lib/python/ZODB/FileStorage.py", line 560, in _load
            pos=_index[oid]
            KeyError: e                   

(actually, it didn't say KeyError: e, but some odd character I don't
know how to reproduce.)

To fix it I entered the var/ directory, renamed the Data.fs to df-old
and renamed the Data.fs.old to Data.fs.  Started the Zope-process and
everything was fine.

Anyone seen this before?  It could maybe resemble the bug 1244
(<URL:http://www.zope.org:8080/Collector/1244>), but I don't think
so.  The strange thing is that it (Data.fs) got smaller when I defined
"days older than" to be '3', _after_ having set it to '0'.

Versions:
  Red Hat Linux 6.1 (2.2.12-20)
  Zope version 2.1.2