Transparent Folders curse strikes again: A play in two acts
Hi, I've just been bitten with a Transparent Folder bug for the fourth time. A Folder containting a Transparent Folder becomes itself transparent, with the result that my whole ZODB is now a mess of acquired objects that pretty much prevent anything from working right. In the past the only way I found to clear the problem was to delete the Transparent Folders, export everything, reimport and recreate the TFs. But if it's just going to happen again, what's the point? Last time it happened I posted a message about it, which resulted in absolutely nothing happening. I don't get it... I'm sure I'm not the only one using Transparent Folders (or am I?)... how come nobody else suffers from this? And it's not like I'm doing anything really unusual... I just create a few TFs, throw in some methods and keep working happily, and at some point everything becomes transparent. Please someone tell me you know something about this, so I don't have to give up on TFs and rebuild my entire ZODB... Update: I just installed TF 0.3.2, just to be safe. Then I wrote a method that traversed the whole object tree and checked all Folders for a _is_transparent property. Didn't find any. So far so good. Then I changed it to print _transparent_object_ids for all objects that got that property. Sure enough, Folders which contain TFs appear in the list of their parent Folders. Well, at least it's not an obscure, Itai-is-just-making-it-up kind of problem. I got proof! Ok, I added a line to set _transparent_object_ids to () unless a Folder really contains TFs. Problem gone. But do I believe it won't come back? Not for a minute. So, the question now, for anyone who understands the TF patch code, is: how do these (very non-transparent) Folders get into the list, and how do I ensure they don't get back on the list any time they feel like it, without having to run this test method every day? Itai -- -- Itai Tavor -- "Je sautille, donc je suis." -- itai@optusnet.com.au -- - Kermit the Frog -- -- -- -- "If you haven't got your health, you haven't got anything" --
Itai Tavor writes:
I've just been bitten with a Transparent Folder bug for the fourth time. A Folder containting a Transparent Folder becomes itself transparent, with the result that my whole ZODB is now a mess of acquired objects that pretty much prevent anything from working right. In the past the only way I found to clear the problem was to delete the Transparent Folders, export everything, reimport and recreate the TFs. But if it's just going to happen again, what's the point? This problem has been decribed recently (--> archives).
Share responded: found problem, should have prevented access to all names starting with "_", have a fix but want to check it for some time before making new release Dieter
Itai Tavor writes:
I've just been bitten with a Transparent Folder bug for the fourth time. A Folder containting a Transparent Folder becomes itself transparent, with the result that my whole ZODB is now a mess of acquired objects that pretty much prevent anything from working right. In the past the only way I found to clear the problem was to delete the Transparent Folders, export everything, reimport and recreate the TFs. But if it's just going to happen again, what's the point? This problem has been decribed recently (--> archives).
Share responded:
found problem, should have prevented access to all names starting with "_", have a fix but want to check it for some time before making new release
Dieter
Other than my own posting back in January and Shane's response to it, which did not result in a solution, I can only find a discussion of this problem around March in which a patch was offered and did not help. Shane did not get involved in that one. So I can't find any mention of the response you're referring to... I certainly can't find any mention of a solution to the bug, and the latest release of TF does not address it. Itai -- -- Itai Tavor -- "Je sautille, donc je suis." -- itai@optusnet.com.au -- - Kermit the Frog -- -- -- -- "If you haven't got your health, you haven't got anything" --
Itai Tavor writes:
Itai Tavor writes:
I've just been bitten with a Transparent Folder bug for the fourth time. A Folder containting a Transparent Folder becomes itself transparent, with the result that my whole ZODB is now a mess of acquired objects that pretty much prevent anything from working right. In the past the only way I found to clear the problem was to delete the Transparent Folders, export everything, reimport and recreate the TFs. But if it's just going to happen again, what's the point? This problem has been decribed recently (--> archives).
Share responded:
found problem, should have prevented access to all names starting with "_", have a fix but want to check it for some time before making new release
Dieter
Other than my own posting back in January and Shane's response to it, which did not result in a solution .... In the Transparent Folder "__getattr__" you find a line:
if tpids and not self._v_no_transparent and name[:3] != '_p_' Change this to: if tpids and not self._v_no_transparent and name[:1] != '_' That's what Shane proposed but wanted to check for a while. Dieter
Dieter Maurer writes:
Itai Tavor writes:
Itai Tavor writes:
I've just been bitten with a Transparent Folder bug for the fourth time. A Folder containting a Transparent Folder becomes itself transparent, with the result that my whole ZODB is now a mess of acquired objects that pretty much prevent anything from working right. In the past the only way I found to clear the problem was to delete the Transparent Folders, export everything, reimport and recreate the TFs. But if it's just going to happen again, what's the point? This problem has been decribed recently (--> archives).
Share responded:
found problem, should have prevented access to all names starting with "_", have a fix but want to check it for some time before making new release
Dieter
Other than my own posting back in January and Shane's response to it, which did not result in a solution .... In the Transparent Folder "__getattr__" you find a line:
if tpids and not self._v_no_transparent and name[:3] != '_p_'
Change this to:
if tpids and not self._v_no_transparent and name[:1] != '_'
That's what Shane proposed but wanted to check for a while.
Thanks, I'll try that. I won't be able to tell if it does anything since I got rid of the messed up folders, so I'll just have to wait a while and see if the problem reappears. Thanks again, Itai. -- -- Itai Tavor -- "Je sautille, donc je suis." -- itai@optusnet.com.au -- - Kermit the Frog -- -- -- -- "If you haven't got your health, you haven't got anything" --
participants (2)
-
Dieter Maurer -
Itai Tavor