[ZODB-Dev] KeyError / POSKeyError

2007-03-23 Thread 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


Re: [ZODB-Dev] KeyError / POSKeyError

2007-03-23 Thread Christian Theune
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

2007-03-23 Thread Laurence Rowe
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

2007-03-23 Thread Tim Tisdall

 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

2007-03-23 Thread Dieter Maurer
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

2007-03-23 Thread Tim Tisdall

  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