I have a Data.fs that I've been building up over many versions of Zope. Somewhere along the line, I noticed that "Undo" stopped working in many situations. Now it's almost never usable. I get errors like Error Type: UndoError Error Value: Couldn't undo change to '\x00\x00\x00\x00\x00\x00\x19r' because non-undoable transaction I've also noticed that Versions can really ruin my day. I don't want to try that right now in order to give an example, but it has meant having to completely destroy the parent folder of the Version. I've just considered these as developmental bugs, but with the release of 2.4.0 today, I decided to try Undo and Versions with a fresh database. They worked flawlessly. So...I'm guessing that my Data.fs file is a bit messed up. I looked at some of the utilities, but they don't appear to be appropriate. I tried running the ZODB recovery script, but it didn't find anything to recover. I'm considering trying to export everything that I can and then import them into a fresh database. I did this long ago, but I had far fewer objects in my root directory. I'd like to avoid doing it now. Any suggestions? Thank you. --kyler
Ug. Good news and bad news... I tried working with my fresh Data.fs for awhile. As soon as I created my custom user folder (that uses an X.500 server), it exhibited the problems. Apparently my product is screwing up the database. I'm not sure what to do, but I'm going to bang on it for awhile. Thank you. --kyler
It turned out to be a problem with my custom user folder product. Perhaps this can help someone later... I was caching some information in my product using a global variable that started with _v_. Moving this to be self._v_cache solved the problem. My *guess* is that something in the transaction machinery fails when there is data not tucked away in the proper place. Because I had to authenticate to use Undo and Versions, my info was in this variable. So, the lesson is that I should avoid global variables in products, even if they appear to work otherwise. Thank you. --kyler
Kyler B. Laird writes:
... I was caching some information in my product using a global variable that started with _v_. Moving this to be self._v_cache solved the problem.
My *guess* is that something in the transaction machinery fails when there is data not tucked away in the proper place. .... So, the lesson is that I should avoid global variables in products, even if they appear to work otherwise. In principle, there is no problem with global data in modules. Many products do it to maintain non-persistent state that must be seen in all threads. Examples are my "CacheControlled ZSQL Methods", "FSSession" and "GUF".
Moving the information to "self._v_XXX" has the potential problem that it is only available to one thread: attributes starting with "_v_" are thread local! I would expect that you did not yet find the real problem. Dieter
To clean Data.fs transactions... -> Control Panel -> Database Management -> Pack I hope this help, Paula Mangas On Mon, 23 Jul 2001, Kyler B. Laird wrote:
I have a Data.fs that I've been building up over many versions of Zope. Somewhere along the line, I noticed that "Undo" stopped working in many situations. Now it's almost never usable. I get errors like
Error Type: UndoError Error Value: Couldn't undo change to '\x00\x00\x00\x00\x00\x00\x19r' because non-undoable transaction
I've also noticed that Versions can really ruin my day. I don't want to try that right now in order to give an example, but it has meant having to completely destroy the parent folder of the Version.
I've just considered these as developmental bugs, but with the release of 2.4.0 today, I decided to try Undo and Versions with a fresh database. They worked flawlessly.
So...I'm guessing that my Data.fs file is a bit messed up. I looked at some of the utilities, but they don't appear to be appropriate. I tried running the ZODB recovery script, but it didn't find anything to recover.
I'm considering trying to export everything that I can and then import them into a fresh database. I did this long ago, but I had far fewer objects in my root directory. I'd like to avoid doing it now.
Any suggestions?
Thank you.
--kyler
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
-- ============================================================ Quando tiver duvidas, nao questione aqueles que so' tem certezas, pois corre o risco de ficar com mais duvidas!... ------------------------------------------------------------ Paula Monteiro Mangas e-mail: Paula.Mangas@mail.com URL: http://students.fct.unl.pt/~pamm/ TMV: (+351) 96 2559034 ============================================================
Kyler B. Laird writes:
I have a Data.fs that I've been building up over many versions of Zope. Somewhere along the line, I noticed that "Undo" stopped working in many situations. Now it's almost never usable. I get errors like
Error Type: UndoError Error Value: Couldn't undo change to '\x00\x00\x00\x00\x00\x00\x19r' because non-undoable transaction
A non-undoable transaction means that a later transaction is dependent on this one. They can only be undone together. Dieter
participants (3)
-
Dieter Maurer -
Kyler B. Laird -
Paula Mangas