[Zope-dev] XMLWidget ldemo undeletable.

Martijn Faassen faassen@vet.uu.nl
Fri, 15 Oct 1999 02:24:40 +0200


Robin Becker wrote:
> I've installed the latest XMLWidget, but find I'm having problems with
> deleting an earlier instance. 

Hm, my install document says to uninstall the previous incarnation, because
otherwise you'll have problems like this. :) But it's no disaster, I'm sure.

> I can't seem to do anything to undo the
> changes as these fail. I'm also getting horrible messages of the form
> 
> 1999-10-14T23:57:14 ERROR(200) ZODB Couldn't load state for
> '\000\000\000\000\00
> 0\000\005f'
> 
> how can I fix up my database?

I've seen that kind of message before, though not in association with
XMLWidgets (I will probably see 'm if I consult the logfile, though :). I
think it means the ZODB finds an object it can't find an associated class
for, or something like that. It doesn't seem to harm anything, at least,
though all the \000\ stuff *looks* scary.

That said, I'd like to know what to do about orphan objects like that. I've
created a number of them when changing around XMLWidgets. Twice I removed
some code (a widget class, for instance), but then found out I couldn't
delete/move/do anything to the ZClasses that were previously instantiated
and expected this code to be there. The trick I used was to recreate the
class (empty), and then I could delete the object.

Now probably there's already some script in the utilities directory that
does the trick... Hm, looking at it you might be able to use bbb.py to
generate a report on what transaction caused the mess, and then manually
truncate your database to a state before that. Trouble is that you'd need
the original XMLWidgets installed to remove them cleanly; removing the .py
code before you remove the objects that use it isn't a good idea (it gets
you into problems like this).

In general, some tools/advice to deal with this kind of problem would be
appreciated.
[Turns to stare hopefully at Digital Creations]

Regards,

Martijn