Plone 3.3.1 - zope skip-fake-eggs and additional-fake-eggs

6 messages Options
Embed this post
Permalink
mlindig () Plone 3.3.1 - zope skip-fake-eggs and additional-fake-eggs
Reply Threaded More More options
Print post
Permalink
Hi,

I have a running Plone-3.3.1 zeoserver/zeoclient instance. I'm using buildout for the setup and do some additional buildout stuff so that I do some tweaks of standard plone buildout. My running production instance runs well but I have to add some additional stuff for zope fake-eggs section, here are my changes:
[versions]
# ...
zope.app.zcmlfiles                = 3.5.5
zope.component                    = 3.5.1
zope.i18n                         = 3.7.1
zope.securitypolicy               = 3.5.1
zope.testing                      = 3.7.7

[zope2]
url = http://www.zope.org/Products/Zope/2.10.8/Zope-2.10.8-final.tgz
skip-fake-eggs +=
    zope.app.zcmlfiles
    zope.component
    zope.i18n
    zope.securitypolicy
    zope.testing
additional-fake-eggs +=
    ZODB3

If I change something in the version section for zope components (for instance if I pin the versions to 3.4.0 as mentioned in collective.novate) then I can not use the QuickInstaller any more, I got allways an exception on installing/reinstalling products:
Traceback (innermost last):
  Module ZPublisher.Publish, line 119, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 42, in call_object
  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 589, in installProducts
  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 475, in installProduct
   - __traceback_info__: ('collective.easytemplate',)
  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 396, in snapshotPortal
  Module five.localsitemanager.registry, line 194, in registeredUtilities
  Module zope.component.registry, line 127, in registeredUtilities
ValueError: too many values to unpack

My problem is: that I do not exactly understand why my current configuration works and why the configuration mentioned by collective.novate does not.

Who can say which fake-eggs and versions are needed (the best) for Plone-3.3.1 and Zope-2.10.8.

Thanks for any help,
Michael
Dieter Maurer () Re: Plone 3.3.1 - zope skip-fake-eggs and additional-fake-eggs
Reply Threaded More More options
Print post
Permalink
mlindig wrote at 2009-10-21 02:39 -0700:

> ....
>If I change something in the version section for zope components (for
>instance if I pin the versions to 3.4.0 as mentioned in collective.novate)
>then I can not use the QuickInstaller any more, I got allways an exception
>on installing/reinstalling products:
>Traceback (innermost last):
>  Module ZPublisher.Publish, line 119, in publish
>  Module ZPublisher.mapply, line 88, in mapply
>  Module ZPublisher.Publish, line 42, in call_object
>  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 589, in
>installProducts
>  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 475, in
>installProduct
>   - __traceback_info__: ('collective.easytemplate',)
>  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 396, in
>snapshotPortal
>  Module five.localsitemanager.registry, line 194, in registeredUtilities
>  Module zope.component.registry, line 127, in registeredUtilities
>ValueError: too many values to unpack

This indicates that after your version change, the then used
code is no longer compatible with the state of objects
(related to "localsitemanager.registry") stored in the ZODB.
An option may be, to manually delete and recreate the "localsitemanager"
registries).

>My problem is: that I do not exactly understand why my current configuration
>works and why the configuration mentioned by collective.novate does not.

Existing (ZODB stored objects) are no longer compatible with the
changed code.



--
Dieter

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Plone-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-users
mlindig () Re: Plone 3.3.1 - zope skip-fake-eggs andadditional-fake-eggs
Reply Threaded More More options
Print post
Permalink
> mlindig wrote at 2009-10-21 02:39 -0700:
> > ....
> >If I change something in the version section for zope components (for
> >instance if I pin the versions to 3.4.0 as mentioned in collective.novate)
> >then I can not use the QuickInstaller any more, I got allways an exception
> >on installing/reinstalling products:
> >Traceback (innermost last):
> >  Module ZPublisher.Publish, line 119, in publish
> >  Module ZPublisher.mapply, line 88, in mapply
> >  Module ZPublisher.Publish, line 42, in call_object
> >  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 589, in
> >installProducts
> >  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 475, in
> >installProduct
> >   - __traceback_info__: ('collective.easytemplate',)
> >  Module Products.CMFQuickInstallerTool.QuickInstallerTool, line 396, in
> >snapshotPortal
> >  Module five.localsitemanager.registry, line 194, in registeredUtilities
> >  Module zope.component.registry, line 127, in registeredUtilities
> >ValueError: too many values to unpack
>
> This indicates that after your version change, the then used
> code is no longer compatible with the state of objects
> (related to "localsitemanager.registry") stored in the ZODB.
> An option may be, to manually delete and recreate the "localsitemanager"
> registries).

Can you give me more details about manually deletion and recreation of
localsitemanager? I does not know where I shall delete the localsitemanager in
Plone-3.3.1.


> >My problem is: that I do not exactly understand why my current configuration
> >works and why the configuration mentioned by collective.novate does not.
>
> Existing (ZODB stored objects) are no longer compatible with the
> changed code.
>
>
>
> --
> Dieter



------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Plone-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-users
Dieter Maurer () Re: Plone 3.3.1 - zope skip-fake-eggs andadditional-fake-eggs
Reply Threaded More More options
Print post
Permalink
Michael Lindig wrote at 2009-10-22 13:30 +0200:

> ...
>> This indicates that after your version change, the then used
>> code is no longer compatible with the state of objects
>> (related to "localsitemanager.registry") stored in the ZODB.
>> An option may be, to manually delete and recreate the "localsitemanager"
>> registries).
>
>Can you give me more details about manually deletion and recreation of
>localsitemanager? I does not know where I shall delete the localsitemanager in
>Plone-3.3.1.

While I have seen problems like yours, I could just delete the complete
ZODB and recreate it anew (because I have had no valuable data).
Almost surely, this is not the case for you.

I have analysed some problems with "localsitemanager". But, this was
about a year ago and my memory is no longer to be fully trusted in this
matter. Thus, be careful with what follows.

The "localsitemanager" is maintained as an attribute of the Plone site
object. When I remember right, its name is "_components" (but I may well
be wrong). You remove the attribute with "del site.<attribute>".
When I remember right, BBB code ensures that the site manager is
automatically recreated when needed for the next time (but again, I
am not sure).

I would do the deletion operation inside an interactive Python
debug session ("bin/plonectl debug"). In this case, an explicite
"transaction.commit()" is necessary to make the deletion persistent.
An alternative is to perform the deletion inside a Web request, e.g.
an "ExternalMethod". Then, the Web framework will do the "commit".

The "localsitemanager" is used for local registrations. Plone uses
local registrations e.g. for the portletmanagers and portlet-manager
associations available to a site. Even if the "localsitemanager"
is recreated automatically, it will be empty. To fill it again,
you will need to import the corresponding GenericSetup steps again
(I know the "portlets" will need to be reimported, maybe more).



--
Dieter

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Plone-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-users
mlindig () Re: Plone 3.3.1 - zope skip-fake-eggs andadditional-fake-eggs
Reply Threaded More More options
Print post
Permalink
many thanks for your hints ;)! It sounds very difficult to do the  
localsitemanager update, maybe I will try it in a copy of my  
production site.

Two questions at the end:

  If I want to update my current Plone-3.3.1 instance to Plone-4 in  
future, do you think that this localsitemanage problem will be solved  
as a migration step?

  When did I need to do such localsitemanger update? (at zope version  
change, at which zope component version change, ...)

--
Michael
PS: Maybe there is some one which builds a egg for this problem ;)

Quoting Dieter Maurer <[hidden email]>:

> Michael Lindig wrote at 2009-10-22 13:30 +0200:
>> ...
>>> This indicates that after your version change, the then used
>>> code is no longer compatible with the state of objects
>>> (related to "localsitemanager.registry") stored in the ZODB.
>>> An option may be, to manually delete and recreate the "localsitemanager"
>>> registries).
>>
>> Can you give me more details about manually deletion and recreation of
>> localsitemanager? I does not know where I shall delete the  
>> localsitemanager in
>> Plone-3.3.1.
>
> While I have seen problems like yours, I could just delete the complete
> ZODB and recreate it anew (because I have had no valuable data).
> Almost surely, this is not the case for you.
>
> I have analysed some problems with "localsitemanager". But, this was
> about a year ago and my memory is no longer to be fully trusted in this
> matter. Thus, be careful with what follows.
>
> The "localsitemanager" is maintained as an attribute of the Plone site
> object. When I remember right, its name is "_components" (but I may well
> be wrong). You remove the attribute with "del site.<attribute>".
> When I remember right, BBB code ensures that the site manager is
> automatically recreated when needed for the next time (but again, I
> am not sure).
>
> I would do the deletion operation inside an interactive Python
> debug session ("bin/plonectl debug"). In this case, an explicite
> "transaction.commit()" is necessary to make the deletion persistent.
> An alternative is to perform the deletion inside a Web request, e.g.
> an "ExternalMethod". Then, the Web framework will do the "commit".
>
> The "localsitemanager" is used for local registrations. Plone uses
> local registrations e.g. for the portletmanagers and portlet-manager
> associations available to a site. Even if the "localsitemanager"
> is recreated automatically, it will be empty. To fill it again,
> you will need to import the corresponding GenericSetup steps again
> (I know the "portlets" will need to be reimported, maybe more).
>
>
>
> --
> Dieter
>
>




------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Plone-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-users
Dieter Maurer () Re: Plone 3.3.1 - zope skip-fake-eggs andadditional-fake-eggs
Reply Threaded More More options
Print post
Permalink
Michael Lindig wrote at 2009-10-24 21:10 +0200:
>many thanks for your hints ;)! It sounds very difficult to do the  
>localsitemanager update, maybe I will try it in a copy of my  
>production site.
>
>Two questions at the end:
>
>  If I want to update my current Plone-3.3.1 instance to Plone-4 in  
>future, do you think that this localsitemanage problem will be solved  
>as a migration step?

The Plone people do quite a good job with the difficult migration
problem. Thus, there is a good chance....

>  When did I need to do such localsitemanger update? (at zope version  
>change, at which zope component version change, ...)

This is difficult to answer, now that Plone is no longer
monolithically distributed and installed but as a huge set of
more or less individually updatable components.

Problems of the kind you currently observe can happen when
code is changed on which persistent objects in the ZODB depend.

When you upgrade to a new Plone version (without any modifications
of your own), you have a good chance that incompatibilities
with earlier versions are known and taken care of by the migration
process or special documentation. If you change versions of some
components, either explicitely or implicitely by installing further
components which require different versions, then you may be one
of the first people who observe the problem and have to look for
solutions yourself.



--
Dieter

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Plone-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/plone-users