Urgh! While trying to get Zope 2.5.0b3 working I accidentally started a 2.5.0b3 ZEO client on a Zope 2.4.3 ZEO server. Doing this caused some stuff (Sessions?) to be added to the database. When the live 2.4.3 ZEO client stopped, it wouldn't restart with the following traceback: ------ 2002-01-10T21:27:44 PANIC(300) z2 Startup exception ------ 2002-01-10T21:27:44 ERROR(200) ZODB Couldn't load state for '\x00\x00\x00\x00\x00\x00\x00\x02' Traceback (innermost last): File /data/www/Zope.6/src/Zope-2.4.3-src/lib/python/ZODB/Connection.py, line 544, in setstate ImportError: No module named Sessions.SessionDataManager Traceback (innermost last): File /data/www/Zope.6/Zope/z2.py, line 564, in ? File <string>, line 1, in ? File /data/www/Zope.6/src/Zope-2.4.3-src/lib/python/Zope/__init__.py, line 144, in ? File /data/www/Zope.6/src/Zope-2.4.3-src/lib/python/OFS/Application.py, line 389, in initialize File /data/www/Zope.6/src/Zope-2.4.3-src/lib/python/ZODB/Connection.py, line 544, in setstate ImportError: No module named Sessions.SessionDataManager Either I need to get 2.5.0b3 working (it was dying with Error Code 11 problems) or I need to figure out how to remove the things that were added to the database by a 2.5.0b3 ZEO client. Any help or insight would be greatly appreciated. --andy.
Could you just undo enough transactions to get back to the old state? Or do you need to keep some of the changes you made? Jeremy
Jeremy Hylton wrote:
Could you just undo enough transactions to get back to the old state? Or do you need to keep some of the changes you made?
I'm not familiar with any tools that can go through transactions like this. Can you poing me towards a tool that allows me to see all the transactions and delete anything after a certain point? I don't care about what happened after the bad transaction. --andy.
I don't know if a tool exists either. I think something quick could be hacked together, but I doubt I'd have time to do it anytime soon. I don't know if you up for some programming to accomplish this goal or not. There are a couple of ideas I have along these lines in case you or someone else can pursue them. There's a tool called fstest.py in two places in CVS: Zope/utilities/ZODBTools and StandaloneZODB/Tools If you run it with a -vv argument it will show you all the individual transactions an objects. It prints a transaction id, and could be modified to convert those transaction ids to timestamps. From the timestamps and oids, you could probably figure out the last good transaction. You can use transactionalUndo() on every transaction id following the last good one. You might be able to go into the storage and truncate it at the last good transaction. You'd need to blow away the index, too. This sounds risky, but might be the simplest solution. (Backup the file first :-). Jeremy
Ugg. This is my fault. Get the tranalyzer (http://www.zope.org/Members/htrd/tranalyzer) Follow the instructions from Itamar's howto here: http://www.zope.org/Members/itamar/CorruptedZODB Andrew Sydelko wrote:
Jeremy Hylton wrote:
Could you just undo enough transactions to get back to the old state? Or do you need to keep some of the changes you made?
I'm not familiar with any tools that can go through transactions like this. Can you poing me towards a tool that allows me to see all the transactions and delete anything after a certain point?
I don't care about what happened after the bad transaction.
--andy.
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
participants (4)
-
Andrew Sydelko -
Andrew T Sydelko -
Chris McDonough -
Jeremy Hylton