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

Jeremy Hylton jeremy at alum.mit.edu
Tue Aug 12 18:21:23 EDT 2003


I don't recall that any of the pack bugs that we fixed caused this sort of
error.  My first guess would be that the file is a bit damaged, perhaps in a
way that the old pack did not check.

Can you run fsdump.py and see if that output sheds any light.  It will give
you a detailed text summary of all the transactions and data records.  You
could use the dump to figure out if, for example, the two numbers in the
error message are indeed transaction header locations.

Jeremy

> -----Original Message-----
> From: Anthony Baxter [mailto:anthony at interlink.com.au]
> Sent: Tuesday, August 12, 2003 4:18 AM
> To: zope-dev at zope.org
> Subject: [Zope-dev] Packing (still) hosed in 2.6.2?
>
>
> 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