[ZODB-Dev] KeyError / POSKeyError
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@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] KeyError / POSKeyError
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@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev -- gocept gmbh co. kg - forsterstraße 29 - 06112 halle/saale - germany www.gocept.com - [EMAIL PROTECTED] - phone +49 345 122 9889 7 - fax +49 345 122 9889 1 - zope and plone consulting and development signature.asc Description: Dies ist ein digital signierter Nachrichtenteil ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
[ZODB-Dev] Re: KeyError / POSKeyError
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 [EMAIL PROTECTED] 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@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev -- gocept gmbh co. kg - forsterstraße 29 - 06112 halle/saale - germany www.gocept.com - [EMAIL PROTECTED] - 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@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@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] Re: KeyError / POSKeyError
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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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
Re: [ZODB-Dev] Re: KeyError / POSKeyError
Tim Tisdall wrote at 2007-3-23 16:03 -0400: 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' Looks like a buggy fsrefs: It complains that oid 0x0L refers to missing oid 0x1L and then it complains that oid 0x1L refers to other missind oids. Apparently, oid 0x1L is there. Otherwise, it would be difficult for it to refer to missing objects. Do not trust this fsrefs version. -- Dieter ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] Re: KeyError / POSKeyError
Okay, I didn't think it'd work, but I tried using a backup. It didn't work. I only have backups of the ZODB with the plone instance I want to keep. Unfortunately, it and all the backups seem to be hung up on finding the broken plone instance in a completely different ZODB. I didn't bother making backups of the broken plone instance because... well, why recover something that's already broken. The relation is that the broken plone instance was as far as I could get with migrating a website from an old version of Plone and I was able to copy most of the contents over to a new instance of Plone. All I used was the copy and paste inside the ZMI. I don't understand why it's still looking for that broken version, but I have no idea how to alter the good site so it stops looking for that broken version that's no longer there (at least, not in the state that it wants it to be). -Tim On 3/23/07, Dieter Maurer [EMAIL PROTECTED] wrote: Tim Tisdall wrote at 2007-3-23 16:32 -0400: I tried running a pack on the database via fsrecover.fs and here's what I get: - Recovering Data_fammedmain.fs into Data_fammedmain-recovery.fs . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0 0 bytes removed during recovery Packing ... Traceback (most recent call last): ... return referencesf(self._file.read(dh.plen)) File /opt/Plone-2.5.2/lib/python/ZODB/serialize.py, line 645, in referencesf oid = oid_loaders[reference_type](*args) KeyError: 'n' Looks like the physical structure of your storage is okay but some object data is corrupted. Try to restore the storage from a backup. -- Dieter ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev