[Zope] POSKeyError II: Dead By Dawn

Toby Dickenson tdickenson@geminidataloggers.com
Tue, 21 Jan 2003 12:06:50 +0000


On Tuesday 21 January 2003 7:58 am, Paul Winkler wrote:

> The really fun thing about POSKeyErrors in particular is that
> I know of no way to find out what zope id the broken oid once
> belonged to. Is there any way?

It shouldnt be hard to change fsrefs to dump the oid reference chain that=
=20
leads to the dangling reference. DirectoryStorage 1.0 will do that if it=20
finds a dangling reference during packing - for 1.1 I plan to move that=20
feature into checkds where it belongs.

However an oid reference chain wont tell you the application-level id of =
the=20
object, but you can deduce that by looking at pickles.

> I tried mounting a copy of the backup with another Zope instance,
> exporting the recent stuff, and importing it into the
> zope running the "repaired" Data.fs, but every time I tried
> to do that I got POSKeyErrors. (!)

Yes. The export procedure silently ignores any POSKeyErrors. Importing th=
at=20
export will create a nice clean dangling reference. Thats a feature, not =
a=20
bug.

> The repaired Data.fs passes fstest.py with no errors, so I
> think somehow the exports from the backup bring the
> POSKeyErrors with them. It's like a virus!!!

You imported some dangling references.=20

--=20
Toby Dickenson
http://www.geminidataloggers.com/people/tdickenson