Zope 2.12 and Broken classes
Hello, I observe following change between Zope 2.11 and Zope 2.12, and I am struggling finding a solution in Zope 2.12 for it: 1. Create two objects in a folder in your ZODB, 2. Remove the FS code of those objects, and restart your Zope, 3. Select one of those object and delete it (ZMI, code, whatever), 4. It work in Zope 2.11. In Zope 1.12 you get a pickling error as the folder (container) cannot be pickled, as it is trying to pickle the missing object that have not been deleted at step 3. Does this ring a bell to anyone ? Regards, Sylvain, -- Sylvain Viollon -- Infrae t +31 10 243 7051 -- http://infrae.com Hoevestraat 10 3033GC Rotterdam -- The Netherlands
On Fri, 4 Jun 2010 16:50:59 +0200 Sylvain Viollon <sylvain@infrae.com> wrote:
Hello,
Hello,
I observe following change between Zope 2.11 and Zope 2.12, and I am struggling finding a solution in Zope 2.12 for it:
1. Create two objects in a folder in your ZODB,
2. Remove the FS code of those objects, and restart your Zope,
3. Select one of those object and delete it (ZMI, code, whatever),
4. It work in Zope 2.11.
In Zope 1.12 you get a pickling error as the folder (container) cannot be pickled, as it is trying to pickle the missing object that have not been deleted at step 3.
After more testing, I have more information. This bug has been introduced by the release 2.13.0 of ExtensionClass and Persistance packages. Running 2.12.0 of packages make it disappear. I guess I should report this on launchpad ? Regards, Sylvain, -- Sylvain Viollon -- Infrae t +31 10 243 7051 -- http://infrae.com Hoevestraat 10 3033GC Rotterdam -- The Netherlands
On Fri, Jun 4, 2010 at 5:33 PM, Sylvain Viollon <sylvain@infrae.com> wrote:
After more testing, I have more information. This bug has been introduced by the release 2.13.0 of ExtensionClass and Persistance packages. Running 2.12.0 of packages make it disappear.
I guess I should report this on launchpad ?
Please do. I'm not sure where the bug actually is, we probably need to change the Broken implementation in OFS or unify it with the one from ZODB to fix this. Not sure how ZODB deals with storing references to persistent objects (the optimized kind storing the class name in it) and how that relates to broken objects. This isn't really a new problem, it probably happened to any normal non-extension class already in the past. Those are just less frequent in use. Hanno
On Fri, 4 Jun 2010 17:38:41 +0200 Hanno Schlichting <hanno@hannosch.eu> wrote:
On Fri, Jun 4, 2010 at 5:33 PM, Sylvain Viollon <sylvain@infrae.com> wrote:
After more testing, I have more information. This bug has been introduced by the release 2.13.0 of ExtensionClass and Persistance packages. Running 2.12.0 of packages make it disappear.
I guess I should report this on launchpad ?
I reported the bug: https://bugs.edge.launchpad.net/zope2/+bug/589756
Please do. I'm not sure where the bug actually is, we probably need to change the Broken implementation in OFS or unify it with the one from ZODB to fix this. Not sure how ZODB deals with storing references to persistent objects (the optimized kind storing the class name in it) and how that relates to broken objects.
It check for subclasses of ZODB.broken.Broken, where OFS.Unintalled.BrokenClass based one are not. But this is only for things inheriting of persistent, where Extension classes (like OFS.Uninstalled.Broken...) does come from Persitance.
This isn't really a new problem, it probably happened to any normal non-extension class already in the past. Those are just less frequent in use.
Well, it worked before. It's recent optimization done in ExtensionClass that breaked it. Regards, Sylvain, -- Sylvain Viollon -- Infrae t +31 10 243 7051 -- http://infrae.com Hoevestraat 10 3033GC Rotterdam -- The Netherlands
participants (2)
-
Hanno Schlichting -
Sylvain Viollon