[ZODB-Dev] Re: KeyError / POSKeyError

Tim Tisdall tisdaltn at mcmaster.ca
Fri Mar 23 16:03:06 EDT 2007


  When I run the fsrefs.py on the database I get the following:
-----
oid 0x0L persistent.mapping.PersistentMapping
last updated: 2007-01-02 18:59:32.016077, tid=0x36AA393889A1800L
refers to invalid object:
       oid ('\x00\x00\x00\x00\x00\x00\x00\x01', None) missing: '<unknown>'

oid 0x1L OFS.Application.Application
last updated: 2007-01-02 18:59:32.016077, tid=0x36AA393889A1800L
refers to invalid objects:
       oid ('\x00\x00\x00\x00\x00\x00\x00\x06', None) missing: '<unknown>'
       oid ('\x00\x00\x00\x00\x00\x00\x00\x02', None) missing: '<unknown>'
       oid ('\x00\x00\x00\x00\x00\x00\x00\x02', None) missing: '<unknown>'
       oid ('\x00\x00\x00\x00\x00\x00\x00\x03', None) missing: '<unknown>'

oid 0x2L AccessControl.User.UserFolder
last updated: 2007-01-02 18:59:32.016077, tid=0x36AA393889A1800L
refers to invalid object:
       oid ('\x00\x00\x00\x00\x00\x00\x00\x05', None) missing: '<unknown>'

oid 0x3L App.ApplicationManager.ApplicationManager
last updated: 2007-01-02 18:59:32.016077, tid=0x36AA393889A1800L
refers to invalid object:
       oid ('\x00\x00\x00\x00\x00\x00\x00\x04', None) missing: '<unknown>'

oid 0x6L OFS.Folder.Folder
last updated: 2007-01-02 19:05:58.342331, tid=0x36AA399F8ED6222L
refers to invalid object:
       oid ('\x00\x00\x00\x00\x00\x00\x11\xbe', None) missing: '<unknown>'

Traceback (most recent call last):
 File "/opt/Plone-2.5.2/bin/fsrefs.py", line 157, in ?
   main(path)
 File "/opt/Plone-2.5.2/bin/fsrefs.py", line 130, in main
   refs = get_refs(data)
 File "/opt/Plone-2.5.2/lib/python/ZODB/serialize.py", line 687, in get_refs
   data = oid_klass_loaders[reference_type](*args)
KeyError: 'n'
-----


  Here's a section of the event.log with the fammed-old KeyError:

-----
2007-03-22T20:57:44 ERROR ZODB.Connection Couldn't load state for 0x11be
Traceback (most recent call last):
 File "/opt/Plone-2.5.2/lib/python/ZODB/Connection.py", line 732, in setstate
   self._setstate(obj)
 File "/opt/Plone-2.5.2/lib/python/ZODB/Connection.py", line 786, in _setstate
   self._reader.setGhostState(obj, p)
 File "/opt/Plone-2.5.2/lib/python/ZODB/serialize.py", line 604, in
setGhostState
   state = self.getState(pickle)
 File "/opt/Plone-2.5.2/lib/python/ZODB/serialize.py", line 597, in getState
   return unpickler.load()
 File "/opt/Plone-2.5.2/lib/python/ZODB/serialize.py", line 479, in
_persistent_load
   return self.loaders[reference_type](self, *args)
 File "/opt/Plone-2.5.2/lib/python/ZODB/serialize.py", line 540, in
load_multi_oid
   conn = self._conn.get_connection(database_name)
 File "/opt/Plone-2.5.2/lib/python/ZODB/Connection.py", line 305, in
get_connection
   new_con = self._db.databases[database_name].open(
KeyError: 'fammed-old'
------

On 3/23/07, Laurence Rowe <l at lrowe.co.uk> wrote:
> You need to provide the full traceback so we can tell where it is coming
> from.
>
> My guess (though I'm surprised by the particular error) is that you have
> perhaps got content owned by users in a user folder outside the site
> that is no longer accessible when you mount the database on its own. If
> that is the case then you need to write a script to fix up the
> __ac_local_roles__ on the affected objects.
>
> Laurence
>
> Tim Tisdall wrote:
> >   Here's the thing...  I get a KeyError if that ZODB is on it's own,
> > but if I create a fammed-old object that's similar to what it's
> > looking for, it will then throw a POSKeyError.
> >
> >   The Plone instance was created fresh and then only the file
> > contents of the old site were copied over to the new instance.  The
> > migration of the old Plone site didn't work, but it did manage to make
> > it so I could access the files contained within and copy them over.  I
> > didn't copy over any stylings, products, users, widget things...  I'm
> > pretty sure I just copied over AT types and a few basic zope files
> > (like DTML files and zope page templates).
> >
> >   -Tim
> >
> > On 3/23/07, Christian Theune <ct at gocept.com> wrote:
> >> Hi,
> >>
> >> Can you tell whether you get a KeyError or a POSKeyError?
> >>
> >> If you get a KeyError, it's likely that the app (Plone) is broken, e.g.
> >> during the migration you mentioned.
> >>
> >> A POSKeyError would (very likely) not talk about a a key like
> >> 'fammed-old', so I suspect you don't have a corruption in your
> >> storage/database but your application.
> >>
> >> Christian
> >>
> >> Am Freitag, den 23.03.2007, 12:04 -0400 schrieb Tim Tisdall:
> >> >   I've got a 1gb ZODB that contains a single plone site and I'm not
> >> > able to access any part of it via the ZMI.  It keeps saying that it's
> >> > looking for key "fammed-old" which is another plone site in another
> >> > ZODB file.  Basically I managed to partly migrate a Plone 2.0 to Plone
> >> > 2.5 and then copied over the file contents from that instance into a
> >> > new Plone instance.  I have no idea why the new one would be
> >> > referencing the old one, but it seemed to always throw this error if
> >> > the old database was unmounted.
> >> >   I've tried several "cookbook" fixes I've found, but the problem is
> >> > that the plone instance itself is throwing the KeyError.  Deleting the
> >> > whole plone instance is not going to help me much.  Any suggestions?
> >> >   I've also tried running the fsrecovery.py, but it simply makes a
> >> > complete duplicate of the file.  fstest.py doesn't seem to find any
> >> > errors.  fsrefs.py finds a series of errors, but I have no idea what
> >> > to do with that information.  It seems that it's finding that it's
> >> > referencing "fammed-old" and that that doesn't exist.
> >> >
> >> >   -Tim
> >> > _______________________________________________
> >> > For more information about ZODB, see the ZODB Wiki:
> >> > http://www.zope.org/Wikis/ZODB/
> >> >
> >> > ZODB-Dev mailing list  -  ZODB-Dev at zope.org
> >> > http://mail.zope.org/mailman/listinfo/zodb-dev
> >> --
> >> gocept gmbh & co. kg - forsterstraße 29 - 06112 halle/saale - germany
> >> www.gocept.com - ct at gocept.com - phone +49 345 122 9889 7 -
> >> fax +49 345 122 9889 1 - zope and plone consulting and development
> >>
> >>
> > _______________________________________________
> > For more information about ZODB, see the ZODB Wiki:
> > http://www.zope.org/Wikis/ZODB/
> >
> > ZODB-Dev mailing list  -  ZODB-Dev at zope.org
> > http://mail.zope.org/mailman/listinfo/zodb-dev
> >
>
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
>
> ZODB-Dev mailing list  -  ZODB-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zodb-dev
>


More information about the ZODB-Dev mailing list