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)