[Zope] POSKeyError II: Dead By Dawn

Paul Winkler pw_lists@slinkp.com
Tue, 21 Jan 2003 11:37:54 -0800


On Tue, Jan 21, 2003 at 12:06:50PM +0000, Toby Dickenson wrote:
> 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 
> leads to the dangling reference. DirectoryStorage 1.0 will do that if it 
> finds a dangling reference during packing - for 1.1 I plan to move that 
> feature into checkds where it belongs.

Yes, I am hoping to move to DirectoryStorage "as soon as I have time".
For FileStorage, I guess I'm hosed.

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

better than nothing I guess...
 
> > 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 that 
> export will create a nice clean dangling reference. Thats a feature, not a 
> bug.

Ah, OK, thanks for the explanation.

Guess I have to hit the zodb-dev archives and see what I can
learn about OIDs and dangling references etc...

-- 

Paul Winkler
http://www.slinkp.com
Look! Up in the sky! It's MOLE RAT SEMI- FEDORA!
(courtesy of isometric.spaceninja.com)