[Zope-dev] Packing (still) hosed in 2.6.2?

Anthony Baxter anthony at interlink.com.au
Tue Aug 12 19:18:08 EDT 2003


I remember that 2.6 had issues with packing, but I was under the
impression that they'd been fixed...

However, attempting to pack a Data.fs in 2.6-current-cvs fails 
for me:

  File "/export/01/zope/dev_csr_code/lib/python/ZODB/DB.py", line 526, in pack
    try: self._storage.pack(t,referencesf)
  File "/export/01/zope/dev_csr_code/lib/python/ZODB/FileStorage.py", line 1503, in pack
    opos = p.pack()
  File "/export/01/zope/dev_csr_code/lib/python/ZODB/fspack.py", line 680, in pack
    self.gc.findReachable()
  File "/export/01/zope/dev_csr_code/lib/python/ZODB/fspack.py", line 464, in findReachable
    self.buildPackIndex()
  File "/export/01/zope/dev_csr_code/lib/python/ZODB/fspack.py", line 486, in buildPackIndex
    self.checkData(th, tpos, dh, pos)
  File "/export/01/zope/dev_csr_code/lib/python/ZODB/fspack.py", line 189, in checkData
    ": %d != %d", dh.tloc, tpos)
  File "/export/01/zope/dev_csr_code/lib/python/ZODB/fspack.py", line 170, in fail
    raise CorruptedError(s)
ZODB.fspack.CorruptedError: /app/zope/dev_csr_server/var/Data.fs.packtest:9200838:data record does not point to transaction header: 17391715 != 9200760

This is reproducible. The particular Zope that uses this file was 
shut down cleanly before attempting to pack the DB. The code that 
fails to pack is: 

    import ZODB
    from ZODB import FileStorage
    filename='/app/zope/dev_csr_server/var/Data.fs.packtest'
    store = FileStorage.FileStorage(filename)
    db = ZODB.DB(store)
    db.pack() # boom.

Help? I'm using the ZODB that's in the current 2.6 branch of CVS - according
to ZODB/__init__.py it's version 3.1.2. Is a newer version of ZODB going to
help here?

Anthony




More information about the Zope-Dev mailing list