[Zope-dev] Re: Five registerPackage results in unresolved
ConflictError
Sasha Vincic
sasha.vincic at gmail.com
Tue May 20 04:29:11 EDT 2008
Forgot to say that this is Zope 2.9.8, Five 1.4 branch from svn, Plone 2.5.5
/Sasha
On Fri, May 16, 2008 at 12:03 PM, Sasha Vincic <sasha.vincic at gmail.com>
wrote:
> Hi
> On a server we have a ZEO server with 6 clients. When we start/restart the
> server we often get on random instance an AttributeError @@plone and all
> other browser pages. I have tracked it down to a ConflictError when
> installing Five on startup. See traceback bellow. To solve this I tried to
> set enable-product-installation = off to all except one instance but I still
> got errors.
> For now we restart the broken instances until they work, I have tried to
> set sleeping times up to couple seconds between the instances but it didn't
> make any difference.
>
> Five fails when it tries to execute the registerPackage in zcml files. Not
> the same product every time.
> First I thought it didn't respect the enable-product-instalation but that
> is checked in App.Product.initializeProduct method.
> So I played in fiveconfigure.py with transaction.savepoint() but no success
> but if I manually check App.Product.doInstall like in the diff below
>
> Now my question is if this is correct solution for the problem or will it
> have other side effects that I am not aware of? How do I write tests for an
> ConflicError during startup?
>
> /Sasha
>
> Index: fiveconfigure.py
>
>
> ===================================================================
>
>
> --- fiveconfigure.py (revision 86781)
>
>
> +++ fiveconfigure.py (working copy)
>
>
> @@ -23,7 +23,7 @@
>
>
> import warnings
>
>
>
>
>
> import App.config
>
>
> -from App.Product import initializeProduct
>
>
> +from App.Product import initializeProduct, doInstall
>
>
> from App.ProductContext import ProductContext
>
>
> import Products
>
>
> from zLOG import LOG, ERROR
>
>
> @@ -265,6 +265,8 @@
>
>
> if not hasattr(module_, '__path__'):
>
>
> raise ValueError("Must be a package and the " \
>
>
> "package must be filesystem based")
>
>
> + if not doInstall():
>
>
> + return
>
>
>
>
>
> app = Zope2.app()
>
>
> try:
>
>
>
>
> 2008-05-16 11:48:17 ERROR Zope Couldn't install Five
> Traceback (most recent call last):
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/OFS/Application.py",
> line 783, in install_product
> initmethod(context)
> File
> "/Users/sasha/Development/eea-buildout-clean/products/Five/__init__.py",
> line 31, in initialize
> zcml.load_site()
> File "/Users/sasha/Development/eea-buildout-clean/products/Five/zcml.py",
> line 41, in load_site
> _context = xmlconfig.file(file)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/zope/configuration/xmlconfig.py",
> line 560, in file
> context.execute_actions()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/zope/configuration/config.py",
> line 612, in execute_actions
> callable(*args, **kw)
> File
> "/Users/sasha/Development/eea-buildout-clean/products/Five/fiveconfigure.py",
> line 285, in _registerPackage
> transaction.commit()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_manager.py",
> line 96, in commit
> return self.get().commit(sub, deprecation_wng=False)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_transaction.py",
> line 380, in commit
> self._saveCommitishError() # This raises!
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_transaction.py",
> line 378, in commit
> self._commitResources()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_transaction.py",
> line 433, in _commitResources
> rm.commit(self)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/ZODB/Connection.py",
> line 484, in commit
> self._commit(transaction)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/ZODB/Connection.py",
> line 518, in _commit
> raise ConflictError(object=obj)
> ConfigurationExecutionError: ZODB.POSException.ConflictError: database
> conflict error (oid 0x28f61f, class App.Product.Product)
> in:
> File
> "/Users/sasha/Development/eea-buildout-clean/src/plone.session/plone/session/configure.zcml",
> line 5.4-5.65
> <five:registerPackage package="." initialize=".initialize" />
>
> Traceback (most recent call last):
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/Zope2/Startup/run.py",
> line 56, in ?
> run()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/Zope2/Startup/run.py",
> line 21, in run
> starter.prepare()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/Zope2/Startup/__init__.py",
> line 98, in prepare
> self.startZope()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/Zope2/Startup/__init__.py",
> line 257, in startZope
> Zope2.startup()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/Zope2/__init__.py",
> line 47, in startup
> _startup()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/Zope2/App/startup.py",
> line 103, in startup
> OFS.Application.initialize(application)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/OFS/Application.py",
> line 304, in initialize
> initializer.initialize()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/OFS/Application.py",
> line 333, in initialize
> self.install_products()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/OFS/Application.py",
> line 605, in install_products
> return install_products(app)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/OFS/Application.py",
> line 636, in install_products
> folder_permissions, raise_exc=debug_mode)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/OFS/Application.py",
> line 783, in install_product
> initmethod(context)
> File
> "/Users/sasha/Development/eea-buildout-clean/products/Five/__init__.py",
> line 31, in initialize
> zcml.load_site()
> File "/Users/sasha/Development/eea-buildout-clean/products/Five/zcml.py",
> line 41, in load_site
> _context = xmlconfig.file(file)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/zope/configuration/xmlconfig.py",
> line 560, in file
> context.execute_actions()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/zope/configuration/config.py",
> line 612, in execute_actions
> callable(*args, **kw)
> File
> "/Users/sasha/Development/eea-buildout-clean/products/Five/fiveconfigure.py",
> line 285, in _registerPackage
> transaction.commit()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_manager.py",
> line 96, in commit
> return self.get().commit(sub, deprecation_wng=False)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_transaction.py",
> line 380, in commit
> self._saveCommitishError() # This raises!
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_transaction.py",
> line 378, in commit
> self._commitResources()
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/transaction/_transaction.py",
> line 433, in _commitResources
> rm.commit(self)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/ZODB/Connection.py",
> line 484, in commit
> self._commit(transaction)
> File
> "/Users/sasha/Development/eea-buildout-clean/parts/zope2/lib/python/ZODB/Connection.py",
> line 518, in _commit
> raise ConflictError(object=obj)
> zope.configuration.config.ConfigurationExecutionError:
> ZODB.POSException.ConflictError: database conflict error (oid 0x28f61f,
> class App.Product.Product)
> in:
> File
> "/Users/sasha/Development/eea-buildout-clean/src/plone.session/plone/session/configure.zcml",
> line 5.4-5.65
> <five:registerPackage package="." initialize=".initialize" />
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope-dev/attachments/20080520/0a1dfff0/attachment-0001.html
More information about the Zope-Dev
mailing list