Products.cmfplone: AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'

Created on 30 Nov 2017  ·  66Comments  ·  Source: plone/Products.CMFPlone

The following error is raised in Plone 5.1 when you try to install a new Plone site with an add-on where the Dexterity content-class could not be imported properly e.g. for some NameError in my case.

In particular this error message shadows the primary problem. It seems to me that some errors in the bootstrapping phase of Plone or inside of GS are just swallowed.

2017-11-30 11:29:03 ERROR txn.140599418205952 Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7fdfddecbd50>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 514, in abort
    rm.abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.2-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
bug help blocker confirmed

All 66 comments

I had the same error here, but with different preconditions.

  • I registered a custom IIndexQueueProcessor as a local component utility.
  • I had a typo in the path given at factory="...", so this was a non existent path.
  • There were no error while registering the local component.
  • A lookup of the local utility returned a <PloneSite at /Plone>.
  • Even the resulting AttributeError (because the begin method was not found was then masked similar to what @zopyx found above.

The bug is, for some reason local component registration just registers something (Plone Site object) instead of raising an exception if the dotted path does not exist.

Update: This is not reproducible anymore with Plone-5.1.2.1


Had exactly the same error as reported above in a Plone-5.1.0.1, when installing an add-on via the add-site-advanced-form, but not when installing it after site-creation. The cause in my case was a portlet-assignment to a portlet-manager of Products.ContentWellPortlets via a GenericSetup-profile.

Steps to reproduce:
In an add-on's profile add 'portlets.xml' with these lines:

    <?xml version ="1.0"?>
    <portlets>
    <assignment name="top" category="context" key="/"
    manager="ContentWellPortlets.InHeaderPortletManager1"
    type="plone.portlet.static.Static" visible="True">
     </assignment>
    </portlets>

And install it along a site-creation, using "Advanced configuration".

This issue should be fixed before 5.1.2.
It is nearly impossible to use 5.1.2 with add-ons - neither as integrator nor as Plone user.
Unfortunately there is zero indication from the logs what the actual problem is causing this followup error.

Marked as blocker since this must be fixed before further releases.

So is this when installing an add-on in the add-ons control panel? Or only when selecting extra add-ons to install while creating a site?
In the last case, I wonder if it would help to add import transaction; transaction.commit() after creating the Plone Site and before applying any extra add-on profiles. So right before this line: https://github.com/plone/Products.CMFPlone/blob/5.1.2/Products/CMFPlone/factory.py#L166
Could you try that @zopyx ?

@mauritsvanrees It only happens when selecting extra add-ons to install when creating a site. It does not happen when installing after site-creation via the add-ons control-panel or the ZMI's portal_quickinstaller.

Tried your suggestion and it does resolve the error in my case.

Frankly, I have no idea what's happening and avoid adapters in general, even more so because there was never a need for them amongst the use-cases I realized, and additionally ran into a non-reproducible(!) error, seemingly deriving of an adapter's persistent registry, some ages ago.

With a transaction.commit() before installing add-ons, the above AttributeError lookupAll goes away, but the underlying error (in Ida's case a ComponentLookupError for a portlet class) is still there. It only isn't drowned out by dozens of the same AttributeErrors in development. And when installing via the add-ons control panel, the underlying error is still there.

So the transaction.commit() doesn't really solve anything.

Technically, it could be 'fixed' in CMFCore/indexing.py:

    def abort(self):
        sm = getSiteManager()
        try:
            # We need to iterate over the utilities.
            utils = list(sm.getUtilitiesFor(IIndexQueueProcessor))
        except AttributeError:
            pass
        for name, util in utils:
            util.abort()
        self.clear()

But that is also a workaround, for a transaction abort that seems to only happen when there is an error in an add-on that is being installed via the advanced site add form.

@mauritsvanrees thanks a lot for the investigations. I wonder if would be possible to re-use parts of the working after-site-creation-form within the on-site-creation-form. Theoretically it should. And could be of benefit, in terms of reducing redundancy and less work for maintaining. Practically it might open up one or another can. [Placeholder for thinking-face-emoji]

What do you mean with the 'working after-site-creation-form'? Do you mean the add-on form within the Site Setup?
Basically that is what the advanced site-creation form currently is.

Problem here is that a transaction abort fails, maybe because too much has been aborted already (so that the site manager does not work properly) for this particular abort to work... A fix in CMFCore/indexing.py might actually not be such a bad idea, although I see that my quick code above needs to be adjusted a bit to work.
But it still seems that it should maybe be possible to avoid that sm.getUtilitiesFor gets broken in the first place.

There are a bit too many possible angles to take here. But at least someone searching for a problem like this might end up in this issue report, and get some ideas of where to look.

Yes meant that form, wasn't aware it is reused already. Thought each form has it own solution and therein lies the difference. Agree the fix should be where the cause of the errors lies.
BTW, from my side no urgency in fixing.

Well, they don't share code, so it is not code reuse. But the basic functionality of both is the same: call portal_setup.runAllImportStepsFromProfile on a profile. It's just that the advanced site creation form does this for various profiles at once.
The most logical way to make them more the same is to do a transaction.commit in between, and Andreas does not like the implications, and he has a good point there.

Didn't mean that a transaction.commit would be recommendable, was just agreeing with you all the way, that your fix in CMFCore/indexing.py is a feasible solution, yet it's always better to fix the root of the cause, however that solution may look. Cheers, Ida

By coincidence I saw another similar bug I reported a couple of weeks ago, in this case during test setup of Products.Poi in Plone 5.1: https://github.com/collective/Products.Poi/issues/44

@hvelarde why did you removed the "high" flag? This issue is a major and blocker and it must be resolved before the next release (5.1.3).

This bug now has labels '11 prio: blocker' and '12 prio: high'. I think that is why Hector removed one of them: there is no sense in having two priority labels.
It looks like you two agree that this is a blocker. :-)

Now if someone would have a good idea on what the real underlying problem is, that would be very helpful.

My workaround for this issue (in context of using plone.restapi for migration and my own browser view for provisioning a Plone site) is to create plain Plone website using addPloneSite() first and then installing all dependencies after that using portal_quickinstaller.installProducts([products]).

Indeed, "blocker" is more than "high". For an explanation of the labels please read https://docs.google.com/spreadsheets/d/1IQ73bSQ10b0pwoUFn0u8SE4epDdvwjhTiYTDyPAhx7A/edit#gid=0

blocker or high...I would love that the release management considers a blocker as a blocker instead of ignoring them

@zopyx I think dropping the feature of installing a site together with a set of addons is not an option in an bugfix release.

I also digged a bit in code but did no came to the cause or a solution.

@zopyx did you confirm that the same works in a older version (e.g. 5.0.8)?

I wanted to look into this but from the ticket I could not find a way to reproduce this issue in 5.0.2.

I tried the approach by @ida and that worked fine (I added <dependency>profile-Products.ContentWellPortlets:default</dependency> to metadata.xml and Products.ContentWellPortlets to install_requires.

I am pretty sure that this issue is related to Plone 5.1 since I have never seen this in similar complex Plone projects on Plone 5.0 and I had the very same issue when I added Plone 5.1 tests and Travis CI coverage for XML-Director from 5.0 -> 5.1.

The error is meanwhile reproducible with a complete Plone buildout without any extension when you create a Plone site without any extension TTW

[buildout]
parts =  
    zeo
    instance
    zopepy
    mrbob

extends = 
   http://dist.plone.org/release/5.1.2/versions.cfg

index = https://pypi.python.org/simple

find-links =
   http://dist.plone.org/release/5.1.2

extensions = 
    mr.developer

newest = false
show-picked-versions = true

always-update = false

sources = sources
versions = versions

auto-checkout =
    dynamore.policy 
    dynamore.seminarsdx
    dynamore.theme.diazo

[zeo]
recipe = plone.recipe.zeoserver
zeo-address = 5200

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 5080
zeo-client = on
shared-blob = on
zeo-address = 5200
debug-mode = off
security-policy-implementation = C
verbose-security = off
blob-storage = ${buildout:directory}/var/blobstorage

environment-vars = 
    zope_i18n_compile_mo_files  True
    TZ Europe/Berlin


eggs =
    Pillow
    Plone
#    dynamore.policy
#    dynamore.seminarsdx
#    dynamore.theme.diazo
#    plone.restapi
#    collective.recaptchacontactform
#    kitconcept.dsgvo
#    plone.app.mosaic

zcml =


[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
scripts = zopepy

[sources]
dynamore.policy = git ssh://[email protected]:2222/webpages/plone-plugins-dynamore.policy.git
dynamore.seminarsdx = git ssh://[email protected]:2222/webpages/plone-plugins-dynamore.seminarsdx.git
dynamore.theme.diazo = git ssh://[email protected]:2222/webpages/plone-plugins-dynamore.theme.diazo.git

[versions]
zc.buildout = 2.5.3
setuptools = 26.1.1
zope.formlib = 4.0.6
zopyx.txng3.ext = 3.4.1
plone.schema = 1.2.0

MarkupSafe = 1.0
collective.recaptchacontactform = 1.0.0
kitconcept.dsgvo = 1.0.0a13
mr.bob = 0.1.2
orderedmultidict = 1.0
plone.rest = 1.0.0
plone.restapi = 2.0.0
recaptcha-client = 1.0.6
zope.app.i18n = 3.6.4
# plone.restapi==2.0.0
PyJWT = 1.6.4

# Required by:
# dynamore.theme.diazo==0.1.dev1
collective.themefragments = 2.11.1

# Required by:
# dynamore.theme.diazo==0.1.dev1
# spirit.plone.theming==0.8
collective.themesitesetup = 2.1.2

# Required by:
# jsonschema==2.6.0
functools32 = 3.2.3.post2

# Required by:
# dynamore.seminarsdx==1.0
furl = 1.2

# Required by:
# plone.schema==1.2.0
jsonschema = 2.6.0

# Required by:
# collective.recaptchacontactform==1.0.0
plone.formwidget.recaptcha = 1.0b3

# Required by:
# collective.themesitesetup==2.1.2
polib = 1.1.0

# Required by:
# dynamore.theme.diazo==0.1.dev1
spirit.plone.theming = 0.8

# Required by:
# bobtemplates.plone==3.0.0a3
stringcase = 1.2.0

# Required by:
# spirit.plone.theming==0.8
tzlocal = 1.5.1

# Required by:
# collective.themesitesetup==2.1.2
zope.app.localpermission = 4.0.0


[mrbob]
recipe = zc.recipe.egg
eggs =
    mr.bob
    bobtemplates.plone==3.0.0a3

2018-08-09 09:16:11 INFO GenericSetup.types 'Folder' type info imported.
2018-08-09 09:16:11 INFO GenericSetup.types 'Link' type info imported.
2018-08-09 09:16:11 INFO GenericSetup.types 'File' type info imported.
2018-08-09 09:16:11 INFO GenericSetup.types 'Image' type info imported.
2018-08-09 09:16:11 INFO GenericSetup.types 'News Item' type info imported.
2018-08-09 09:16:11 INFO GenericSetup.types 'Event' type info imported.
2018-08-09 09:16:11 INFO Products.GenericSetup.tool Applying main profile profile-plone.app.contenttypes:plone-content
2018-08-09 09:16:11 INFO GenericSetup.rolemap Role / permission map imported.
2018-08-09 09:16:11 INFO GenericSetup.portlets Portlets imported
2018-08-09 09:16:11 ERROR txn.140457537296128 Error in abort() on manager <Products.CMFCore.indexing.QueueTM object at 0x7fbed224e600>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 455, in _cleanup
    rm.abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2018-08-09 09:16:11 ERROR txn.140457537296128 Error in abort() on manager <Products.CMFCore.indexing.QueueTM object at 0x7fbed98347a0>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 455, in _cleanup
    rm.abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2018-08-09 09:16:11 ERROR txn.140457537296128 Error in tpc_abort() on manager <Connection at 7fbed98f10d0>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 461, in _cleanup
    rm.tpc_abort(self)
  File "/home/ajung/.buildout/eggs/ZODB-5.3.0-py2.7.egg/ZODB/Connection.py", line 631, in tpc_abort
    transaction = transaction.data(self)
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 483, in data
    raise KeyError(ob)
KeyError: <Connection at 7fbed98f10d0>
2018-08-09 09:16:11 ERROR txn.140457537296128 Error in tpc_abort() on manager <Products.CMFCore.indexing.QueueTM object at 0x7fbed224e600>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 461, in _cleanup
    rm.tpc_abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2018-08-09 09:16:11 ERROR txn.140457537296128 Error in tpc_abort() on manager <Products.CMFCore.indexing.QueueTM object at 0x7fbed98347a0>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 461, in _cleanup
    rm.tpc_abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2018-08-09 09:16:11 ERROR Zope.SiteErrorLog 1533798971.960.067856441782 http://dev.zopyx.de:5080/@@plone-addsite
Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module Products.CMFPlone.browser.admin, line 272, in __call__
  Module Products.CMFPlone.factory, line 156, in addPloneSite
  Module Products.GenericSetup.tool, line 388, in runAllImportStepsFromProfile
   - __traceback_info__: profile-plone.app.contenttypes:plone-content
  Module Products.GenericSetup.tool, line 1442, in _runImportStepsFromContext
  Module Products.GenericSetup.tool, line 1289, in _doRunHandler
  Module plone.app.contenttypes.setuphandlers, line 330, in import_content
  Module plone.app.contenttypes.setuphandlers, line 173, in create_frontpage
  Module plone.app.contenttypes.setuphandlers, line 93, in addContentToContainer
  Module OFS.ObjectManager, line 358, in _setObject
  Module zope.event, line 31, in notify
  Module zope.component.event, line 27, in dispatch
  Module zope.component._api, line 139, in subscribers
  Module zope.interface.registry, line 442, in subscribers
  Module zope.interface.adapter, line 607, in subscribers
  Module zope.component.event, line 36, in objectEventNotify
  Module zope.component._api, line 139, in subscribers
  Module zope.interface.registry, line 442, in subscribers
  Module zope.interface.adapter, line 607, in subscribers
  Module plone.app.versioningbehavior.subscribers, line 62, in create_version_on_save
  Module Products.CMFEditions.CopyModifyMergeRepositoryTool, line 307, in save
  Module transaction._manager, line 147, in savepoint
  Module transaction._transaction, line 228, in savepoint
  Module transaction._transaction, line 344, in _saveAndRaiseCommitishError
  Module transaction._transaction, line 225, in savepoint
  Module transaction._transaction, line 713, in __init__
  Module ZODB.Connection, line 1000, in savepoint
  Module ZODB.Connection, line 547, in _commit
  Module ZODB.Connection, line 579, in _store_objects
  Module ZODB.serialize, line 419, in serialize
  Module ZODB.serialize, line 428, in _dump
  Module zodbpickle.pickle_2, line 233, in dump
  Module zodbpickle.pickle_2, line 295, in save
  Module zodbpickle.pickle_2, line 557, in save_tuple
  Module zodbpickle.pickle_2, line 295, in save
  Module zodbpickle.pickle_2, line 557, in save_tuple
  Module zodbpickle.pickle_2, line 295, in save
  Module zodbpickle.pickle_2, line 557, in save_tuple
  Module zodbpickle.pickle_2, line 295, in save
  Module zodbpickle.pickle_2, line 557, in save_tuple
  Module zodbpickle.pickle_2, line 295, in save
  Module zodbpickle.pickle_2, line 571, in save_tuple
  Module zodbpickle.pickle_2, line 326, in save
  Module zodbpickle.pickle_2, line 762, in save_global
  Module zodbpickle.pickle_2, line 834, in whichmodule
TypeError: unhashable type: 'Missing.Missing'
2018-08-09 09:16:11 ERROR txn.140457537296128 Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7fbed224e600>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 514, in abort
    rm.abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2018-08-09 09:16:11 ERROR txn.140457537296128 Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7fbed98347a0>
Traceback (most recent call last):
  File "/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg/transaction/_transaction.py", line 514, in abort
    rm.abort(self)
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'

#!/home/ajung/sandboxes/plone-server-buildout-plone5/bin/python2

import sys
sys.path[0:0] = [
  '/home/ajung/.buildout/eggs/Pillow-4.3.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/Plone-5.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.recipe.zope2instance-4.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/ZODB3-3.11.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Zope2-2.13.27-py2.7.egg',
  '/home/ajung/.buildout/eggs/zc.recipe.egg-2.0.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/mailinglogger-3.8.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/setuptools-26.1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zc.buildout-2.5.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.upgrade-2.0.14.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.iterate-3.3.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.dexterity-2.4.9-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.caching-1.2.21-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFPlone-5.1.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFPlacefulWorkflow-1.7.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ATContentTypes-2.3.8-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.Archetypes-1.15.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/archetypes.multilingual-3.0.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/olefile-0.44-py2.7.egg',
  '/home/ajung/.buildout/eggs/transaction-2.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/BTrees-4.4.1-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/persistent-4.2.4.2-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/ZODB-5.3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/ZEO-5.1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/ZServer-3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Record-2.13.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/Products.ZCTextIndex-2.13.5-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/Products.ZCatalog-3.0.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.TemporaryFolder-3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.StandardCacheManagers-2.13.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.Sessions-3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.PythonScripts-2.13.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.MIMETools-2.13.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.MailHost-2.13.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ExternalMethod-2.13.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.BTreeFolder2-2.14.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/initgroups-4.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.viewlet-3.7.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.traversing-4.1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.testing-3.9.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.testbrowser-3.11.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.tales-3.5.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.tal-3.5.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.structuredtext-3.5.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.size-3.4.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.site-3.9.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.sequencesort-3.4.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.sendmail-3.7.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.security-4.1.1-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/zope.schema-4.5.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.publisher-4.3.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.ptresource-3.9.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.proxy-4.3.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/zope.processlifetime-1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.pagetemplate-4.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.location-3.9.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.lifecycleevent-3.6.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/zope.i18nmessageid-4.1.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/zope.i18n-4.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.exceptions-3.6.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.event-3.5.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.deferredimport-3.5.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.contenttype-4.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.contentprovider-3.7.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.container-3.11.2-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.component-4.4.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.browserresource-4.1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.browserpage-4.1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.browsermenu-4.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.browser-2.1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zLOG-3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zExceptions-2.13.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zdaemon-4.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/tempstorage-4.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/pytz-2017.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/docutils-0.14-py2.7.egg',
  '/home/ajung/.buildout/eggs/ZopeUndo-4.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/ZConfig-3.1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/RestrictedPython-3.6.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.OFSP-2.13.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Persistence-2.13.2-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/MultiMapping-3.1-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/Missing-3.2-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/ExtensionClass-4.3.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/DocumentTemplate-2.13.4-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/DateTime-4.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Acquisition-4.4.2-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/AccessControl-3.0.14-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/plone.app.viewletmanager-2.0.11-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.contentrules-2.0.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.PluggableAuthService-1.11.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.PlonePAS-5.0.15-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.GenericSetup-1.8.8-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFEditions-3.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFCore-2.2.12-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.ramcache-1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.folder-1.2.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.portlets-2.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.annotation-3.5.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.statusmessages-5.0.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.DCWorkflow-2.2.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.memoize-1.2.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.locking-2.2.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.form-3.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.deprecation-4.3.0-py2.7.egg',
  '/home/ajung/sandboxes/plone-server-buildout-plone5/lib/python2.7/site-packages',
  '/home/ajung/.buildout/eggs/plone.z3cform-0.9.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.supermodel-1.3.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.autoform-1.7.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.z3cform-3.0.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.uuid-1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.layout-2.7.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.content-3.5.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/lxml-4.1.1-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/plone.schemaeditor-2.0.19-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.rfc822-1.1.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.namedfile-4.2.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.formwidget.namedfile-2.0.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.dexterity-2.6.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.behavior-1.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.textfield-1.2.11-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.zcmlhook-1.0b1-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFDynamicViewFTI-4.1.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.registry-1.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.protect-3.1.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.registry-1.7.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.cachepurging-1.0.14-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.caching-1.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.dottedname-4.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.cachedescriptors-3.5.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.app.locales-3.7.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.autoinclude-0.3.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/slimit-0.8.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/pyScss-1.3.5-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/plonetheme.barceloneta-1.8.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.theme-3.0.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.subrequest-1.8.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.session-3.7.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.schema-1.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.portlet.static-3.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.portlet.collection-3.3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.outputfilters-3.0.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.intelligenttext-2.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.indexer-1.0.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.i18n-3.0.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.browserlayer-2.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.batching-1.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.workflow-3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.vocabularies-4.0.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.users-2.4.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.theming-2.0.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.redirector-1.3.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.portlets-4.3.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.locales-5.1.8-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.linkintegrity-3.3.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.multilingual-5.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.i18n-3.0.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.discussion-3.0.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.customerize-1.3.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.controlpanel-3.0.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.contenttypes-1.4.10-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.contentrules-4.0.18-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.contentmenu-2.2.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.contentlisting-1.3.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.api-1.8.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/mockup-2.7.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/five.pt-2.2.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/five.localsitemanager-2.0.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/five.customerize-1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/borg.localrole-3.1.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.contentmigration-2.1.19-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ResourceRegistries-3.0.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.PortalTransforms-3.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.PluginRegistry-1.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.PlacelessTranslationService-2.0.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.MimetypesRegistry-2.1.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ExternalEditor-1.1.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ExtendedPathIndex-3.3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFUid-2.2.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFQuickInstallerTool-3.0.16-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFFormController-3.1.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.CMFDiffTool-3.2.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.validation-2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.widgets-2.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.imaging-2.0.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.collection-1.2.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.blob-1.7.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.uuid-1.0.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.folder-1.0.11-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ZSQLMethods-2.13.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.datetime-3.4.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/collective.monkeypatcher-1.1.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/zodbpickle-0.7.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/zc.lockfile-1.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/trollius-2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/futures-3.1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/mechanize-0.2.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.broken-3.6.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.filerepresentation-3.6.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.componentvocabulary-1.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.ZopeVersionControl-1.1.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.copy-3.5.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.app.publication-3.12.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.globalrequest-1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.formwidget.query-0.16-py2.7.egg',
  '/home/ajung/.buildout/eggs/simplejson-3.12.0-py2.7-linux-x86_64.egg',
  '/home/ajung/.buildout/eggs/piexif-1.0.13-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.scale-3.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.synchronize-1.0.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.alterego-1.1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/five.globalrequest-1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/repoze.xmliter-0.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.transformchain-1.2.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.keyring-3.0.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.caching-2.0a1-py2.7.egg',
  '/home/ajung/.buildout/eggs/ply-3.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/pathlib-1.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/enum34-1.1.6-py2.7.egg',
  '/home/ajung/.buildout/eggs/jsonschema-2.6.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/Unidecode-0.4.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.querystring-1.4.8-py2.7.egg',
  '/home/ajung/.buildout/eggs/roman-1.4.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.resourceeditor-2.1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.resource-2.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/diazo-1.2.8-py2.7.egg',
  '/home/ajung/.buildout/eggs/feedparser-5.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.relationfield-1.4.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.intid-1.1.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.relationfield-0.7-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.lockingbehavior-1.0.5-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.versioningbehavior-1.3.3-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.app.event-3.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.stringinterp-1.2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/decorator-4.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/Chameleon-2.25-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.pt-3.0.0a1-py2.7.egg',
  '/home/ajung/.buildout/eggs/sourcecodegen-0.6.14-py2.7.egg',
  '/home/ajung/.buildout/eggs/Markdown-2.6.9-py2.7.egg',
  '/home/ajung/.buildout/eggs/python_gettext-3.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/archetypes.schemaextender-2.1.8-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.untrustedpython-4.0.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.error-3.7.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.authentication-3.7.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/future-0.16.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/functools32-3.2.3.post2-py2.7.egg',
  '/home/ajung/.buildout/eggs/cssselect-1.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/five.intid-1.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.intid-3.7.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/zc.relation-1.0-py2.7.egg',
  '/home/ajung/.buildout/eggs/z3c.objpath-1.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.formwidget.recurrence-2.1.2-py2.7.egg',
  '/home/ajung/.buildout/eggs/plone.event-1.3.4-py2.7.egg',
  '/home/ajung/.buildout/eggs/icalendar-4.0.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/Products.DateRecurringIndex-2.1-py2.7.egg',
  '/home/ajung/.buildout/eggs/zope.keyreference-3.6.4-py2.7.egg',
  ]

import plone.recipe.zope2instance.ctl

if __name__ == '__main__':
    sys.exit(plone.recipe.zope2instance.ctl.main(
        ['-C', '/home/ajung/sandboxes/plone-server-buildout-plone5/parts/instance/etc/zope.conf']
        + sys.argv[1:]))

The commits linked above exclude the occurrence of the originating error, when a referenced dependency-profile-id does not exist. Done like in a site's add-on-controlpanel, it shows the add-on as broken and disables the possibility to be selected for an installation.

Unfortunately Jenkins doesn't like it, so closed the PR again. The test-report is here:
https://jenkins.plone.org/blue/organizations/jenkins/pull-request-5.1/detail/pull-request-5.1/1350/pipeline/

BTW, was it correct to create a PR-branch from the 5.1.x-branch?

For the other errors, which then should not, but still could occur, there's some spots in Products.CMFPlone.tool.py, where either an error does not stop execution of further code-lines, or is swallowed silently. Try to share my personal notes in a human-readable way, soonish.

Cannot contribute much concerning the index-error, though :-(

Please leave the issue open until it is officially merged and confirmed.

That was unintentional and happened automagically with the keyword "fixes" in this PR:
https://github.com/zopefoundation/Products.GenericSetup/pull/64

@mauritsvanrees The problem was that getProfilesForDependencies failed silently if a dependency-id does not exists, but still returns an empty tuple, thus not breaking further procedures and causing multiple errors overlaying each other, instead of breaking hard in first place.

In any way it would be good, to mimicry the add-on-section in a site's creation-form, the same way it is done in an existing's site's addons-form, by inhibiting the possibility to install broken add-ons.

@hvelarde Why did you silently delete the branch, respectively would you mind to inform the people whose contribution's you're deleting, beforehand?

@ida I'm sorry; I erased the branch because usually people close pull requests and forget to do so and we end with a lot of stale branches; I'm not deleting your contributions, they must be in you local copy of the repository, so feel free to open a new pull request when you're ready.

I would to test this fix asap personally since it affects our current project. Unfortunately I am on vacation until mid September..but I am looking forward for giving further feedback.

The branch – again – for the interested audience:
https://github.com/plone/Products.CMFPlone/tree/site-crea-warn-broken-addons-refs-2228

Which is pushed from a fork, just in case anything gets deleted, the changes are also here:
https://github.com/ida/Products.CMFPlone/tree/site-crea-warn-broken-addons-refs-2228

Not requesting a PR right now, postponed until unknown.

Created PR to see if Jenkins eats it, with positive result. Closing PR anyway for reasons described in a comment at:https://github.com/plone/Products.CMFPlone/pull/2504
Also deleted the related branch, to not leave litter.

I backported ida's fix in GenericSetup to 1.8, so we can get a release for plone 5.1 (master of GenericSetup is plone 5.2)

@ida I'm not sure if your fix still requires changes to CMFPlone? If so, can you re-add the PR with a "WIP:" (work in progress) in the title? Please keep the commits on a branch, also if you have it in your fork of the repo. It gets really difficult to backport the changes if they are just applied to master :)

@sunew The actual bug-fix happended in GenericSetup, the branch here was for adding broken-addons-warnings in the site-creation-template, should probably get it's own ticket and is not critical, imho.

Gonna look these days, if there's an issue already, otherwise open a new one, and then repush the branch, if you don't have any objections.

Thanks for your feedback and bearing with delayed response-times! I'm rather occasionally online for the next week.

@ida great, thanks!

@zopyx maybe you have the possibility to test your setup with GenericSetup 1.8 branch?

@zopyx yep :) Enjoy the vacation.

@sunew Tested the 1.8-branch and the multiple errors still occur, that's because I made changes after the recommendations of the product-owners without testing it manually again.
I'm sorry, but I don't have more time left to spend on this issue, good proceeding!

@zopyx I copied your buildout from above, and tried to reproduce.
I cannot reproduce the problem on my system, adding a plone site ttw works fine, no traceback in the log.

I have commented out:

auto-checkout =
#    dynamore.policy
#    dynamore.seminarsdx
#    dynamore.theme.diazo

(I do not have access to the repo, so I cannot clone these. Should have no effect, since they are not in eggs)

A diff of bin/instance:

sune@sune-t440:/work/playground/plone/ajung-reproduce$ diff instance.txt jung-instance.txt 
28a29
>   'lib/python2.7/site-packages',
108c109
<   'plone.recipe.zope2instance-4.4.0-py2-none-any.ovo',
---
>   'plone.recipe.zope2instance-4.3-py2.7.egg',
166,167c167
<   'pyScss-1.3.5-py2.7.egg',
<   'python_dateutil-2.6.1-py2.7.egg',
---
>   'pyScss-1.3.5-py2.7-linux-x86_64.egg',
176d175
<   'six-1.10.0-py2.7.egg',
182c181
<   'Unidecode-0.04.1-py2.7.egg',
---
>   'Unidecode-0.4.1-py2.7.egg',

@sunew I am _currently_ testing the GS 1.8 in our migration setup...

The GenericSetup 1.8 solves actually nothing. The lookupAll problem persists.
The specific error situation in our case is that the default profile contains a registry file with a record for interface spirit.plone.theming ... . The lookupAll traceback is triggered when the related add-on is not installed or not initalized.

@zopyx
Ok. So we can conclude:

  1. The error is not reproducable on a pure plone 1.5.2 with no addons
  2. The error is triggered by a default profile with a non-exisitng interface (ie. the original problem, the missing interface, is masked by GS).

I will try to reproduce with a bobtemplate addon with a default profile pointing to a non-existing interface, and see if I can make a fix...

@sunew The first ocurring error will fail hard, if you change the following line to return None:
https://github.com/zopefoundation/Products.GenericSetup/blob/3ca5ee7b3947e02e2cad0c3eaad17d4913322dd7/Products/GenericSetup/tool.py#L951
Tried to explain that in https://github.com/zopefoundation/Products.GenericSetup/issues/68, hope that saves you some time.

@ida thanks! Very helpful:)

FYI in case it is helpful. I ran into this problem as well (https://travis-ci.org/collective/collective.shibboleth/jobs/439564303) and it is gone when I use Plone 5.1.2.1.

FYI in case it is helpful. I ran into this problem as well (https://travis-ci.org/collective/collective.shibboleth/jobs/439564303) and it is gone when I use Plone 5.1.2.1.

All my reports are related to 5.1.2.1

@zopyx sorry for the noise. I was wrong. You can indeed still see the error with Plone 5.1.2 here: https://travis-ci.org/collective/collective.shibboleth/jobs/439564303 (Code: https://github.com/collective/collective.shibboleth/pull/2)

I don't get the point. #2228 is an error in Plone 5.1.2.1.

I suppose this was one of those github-auto-close problems. We had this already in past. Weird.

Why was 5.1.4 released with this blocker?

Minimal buildout for failing Plone 5.1.4: https://github.com/zopyx/failing-plone

Your buildout works here on a very customized Ubuntu 14.04. Also tried with Multilingual using advanced=1. Works.

I can confirm the failing-plone buildout works for me on MacOS 10.14, python 2.7.15

Interesting observation: the error is reproducible with latest Ubuntu and FC26 where we use a shared eggs-directory. Both machines are pretty fresh and the eggs cache is also pretty new. Running the instance from a buildout with local egg-cache (eggs-directory=eggs) then I do not see the error. I also verified the issues with a system Python vs. self-compiled Python which makes no difference. This is unlikely a local problem (two different machines, two different OSes) however the different behaviour with local vs. global eggs cache appears more than weird.

I have a global egg cache here configured in my ~/.buildout/default.cfg and it works.

As far as I understand, this is not a problem in Plone. It is a problem in GenericSetup that hides the underlying problem. And the underlying problem is an add-on that lists a non-existing dependency profile. Installing the add-on in the add-ons control panel would fail. Installing it in the advanced add-plone-site also fails, but sadly in a non-helpful way.

So something that should fail, now fails in an unclear way. I would not call this a blocker.
But sure, it should be fixed.

Onwards:

Using the current GS master does not make a difference.

I cannot reproduce the issue. https://github.com/zopyx/failing-plone works fine. Even which eggs-directory=eggs. Please provide steps how to reproduce the issue.

I just gave the original issue (not the buildout thing) a quick shot on latest coredev/py3.7 and there's still an error page and a traceback in the log. I just added a typo in an addons registry.xml and tried to install it during site creation:

2019-04-15 12:00:56,886 ERROR   [waitress:339][waitress] Exception when serving /@@plone-addsite
Traceback (most recent call last):
  File "/Volumes/WORKSPACE/.buildout/eggs/zope.dottedname-4.3-py3.7.egg/zope/dottedname/resolve.py", line 43, in resolve
    found = getattr(found, n)
AttributeError: module 'collective.easyform.browser' has no attribute 'controlpanels'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/Volumes/WORKSPACE2/coredev52multipy/src/Products.CMFPlone/Products/CMFPlone/browser/admin.py", line 273, in __call__
    portal_timezone=form.get('portal_timezone', 'UTC')
  File "/Volumes/WORKSPACE2/coredev52multipy/src/Products.CMFPlone/Products/CMFPlone/factory.py", line 167, in addPloneSite
    'profile-%s' % extension_id)
  File "/Volumes/WORKSPACE/.buildout/eggs/Products.GenericSetup-2.0b6-py3.7.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/Volumes/WORKSPACE/.buildout/eggs/Products.GenericSetup-2.0b6-py3.7.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/Volumes/WORKSPACE/.buildout/eggs/Products.GenericSetup-2.0b6-py3.7.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/Volumes/WORKSPACE2/coredev52multipy/src/plone.app.registry/plone/app/registry/exportimport/handler.py", line 79, in importRegistry
    importer.importDocument(body)
  File "/Volumes/WORKSPACE2/coredev52multipy/src/plone.app.registry/plone/app/registry/exportimport/handler.py", line 127, in importDocument
    self.importRecords(node)
  File "/Volumes/WORKSPACE2/coredev52multipy/src/plone.app.registry/plone/app/registry/exportimport/handler.py", line 362, in importRecords
    interface = resolve(interfaceName)
  File "/Volumes/WORKSPACE/.buildout/eggs/zope.dottedname-4.3-py3.7.egg/zope/dottedname/resolve.py", line 45, in resolve
    __import__(used)
ModuleNotFoundError: No module named 'collective.easyform.browser.controlpanels'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Volumes/WORKSPACE/.buildout/eggs/waitress-1.2.1-py3.7.egg/waitress/channel.py", line 336, in service
    task.service()
  File "/Volumes/WORKSPACE/.buildout/eggs/waitress-1.2.1-py3.7.egg/waitress/task.py", line 175, in service
    self.execute()
  File "/Volumes/WORKSPACE/.buildout/eggs/waitress-1.2.1-py3.7.egg/waitress/task.py", line 452, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/Volumes/WORKSPACE/.buildout/eggs/Paste-3.0.8-py3.7.egg/paste/translogger.py", line 69, in __call__
    return self.application(environ, replacement_start_response)
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/httpexceptions.py", line 30, in __call__
    return self.application(environ, start_response)
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/Volumes/WORKSPACE/.buildout/eggs/Zope-4.0b10-py3.7.egg/ZPublisher/WSGIPublisher.py", line 183, in transaction_pubevents
    tm.abort()
  File "/Volumes/WORKSPACE/.buildout/eggs/transaction-2.4.0-py3.7.egg/transaction/_manager.py", line 255, in abort
    return self.manager.abort()
  File "/Volumes/WORKSPACE/.buildout/eggs/transaction-2.4.0-py3.7.egg/transaction/_manager.py", line 136, in abort
    return self.get().abort()
  File "/Volumes/WORKSPACE/.buildout/eggs/transaction-2.4.0-py3.7.egg/transaction/_transaction.py", line 529, in abort
    reraise(t, v, tb)
  File "/Volumes/WORKSPACE/.buildout/eggs/transaction-2.4.0-py3.7.egg/transaction/_compat.py", line 50, in reraise
    raise value
  File "/Volumes/WORKSPACE/.buildout/eggs/transaction-2.4.0-py3.7.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/Volumes/WORKSPACE/.buildout/eggs/Products.CMFCore-2.4.0b6-py3.7.egg/Products/CMFCore/indexing.py", line 321, in tpc_abort
    self.queue.abort()
  File "/Volumes/WORKSPACE/.buildout/eggs/Products.CMFCore-2.4.0b6-py3.7.egg/Products/CMFCore/indexing.py", line 237, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/Volumes/WORKSPACE/.buildout/eggs/zope.interface-4.6.0-py3.7-macosx-10.13-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'

Maybe we should catch addon installation during site creation generally in the @@plone-addsite and try to give a human readable error what happened and why the plone site could not be after the plone site has been created...

The very same issues continues to exist in Plone 5.2RC3 in its original form.

https://github.com/zopefoundation/Products.PythonScripts/issues/32 causes this myriade of error mesages:


  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,852 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37b828>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,852 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37b7c8>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,853 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37b9a8>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,853 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37b8e8>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,854 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37b468>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,855 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37ba08>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,855 ERROR   [txn.139952276600576:520][waitress] Failed to abort resource manager: <Products.CMFCore.indexing.QueueTM object at 0x7f492c37bca8>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'
2019-05-23 13:15:10,857 ERROR   [waitress:339][waitress] Exception when serving /create-demo-site
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 142, in transaction_pubevents
    yield
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 229, in publish
    bind=1)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/mapply.py", line 85, in mapply
    return debug(object, args, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 57, in call_object
    return obj(*args)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/src/ugent.policy/ugent/policy/browser/setup.py", line 35, in create_site
    qi.installProducts([product])
  File "<string>", line 3, in installProducts
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/AccessControl-4.0b6-py3.6-linux-x86_64.egg/AccessControl/requestmethod.py", line 85, in _curried
    return callable(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 710, in installProducts
    omitSnapshots=omitSnapshots
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFQuickInstallerTool-4.0.0-py3.6.egg/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 626, in installProduct
    blacklisted_steps=blacklistedSteps,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 393, in runAllImportStepsFromProfile
    dependency_strategy=dependency_strategy)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1465, in _runImportStepsFromContext
    message = self._doRunImportStep(step, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/tool.py", line 1277, in _doRunImportStep
    return handler(context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/exportimport/workflow.py", line 128, in importWorkflowTool
    importObjects(tool, '', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 890, in importObjects
    importObjects(sub, path + '/', context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.GenericSetup-2.0b6-py3.6.egg/Products/GenericSetup/utils.py", line 886, in importObjects
    importer.body = body
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 92, in _importBody
    self.environ)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 981, in _initDCWorkflow
    _initDCWorkflowScripts(workflow, scripts, context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.DCWorkflow-2.4.0b2-py3.6.egg/Products/DCWorkflow/exportimport.py", line 1150, in _initDCWorkflowScripts
    script.write(file)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.PythonScripts-4.6-py3.6.egg/Products/PythonScripts/PythonScript.py", line 415, in write
    m = _nonempty_line.search(text, st)
TypeError: cannot use a string pattern on a bytes-like object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/waitress-1.2.1-py3.6.egg/waitress/channel.py", line 336, in service
    task.service()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/waitress-1.2.1-py3.6.egg/waitress/task.py", line 175, in service
    self.execute()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/waitress-1.2.1-py3.6.egg/waitress/task.py", line 452, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Paste-3.0.8-py3.6.egg/paste/translogger.py", line 69, in __call__
    return self.application(environ, replacement_start_response)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/httpexceptions.py", line 30, in __call__
    return self.application(environ, start_response)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 295, in publish_module
    response = _publish(request, new_mod_info)
  File "/usr/lib64/python3.6/contextlib.py", line 99, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.6.egg/ZPublisher/WSGIPublisher.py", line 183, in transaction_pubevents
    tm.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_manager.py", line 255, in abort
    return self.manager.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_manager.py", line 136, in abort
    return self.get().abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 529, in abort
    reraise(t, v, tb)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_compat.py", line 50, in reraise
    raise value
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.6.egg/transaction/_transaction.py", line 515, in abort
    rm.abort(self)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 323, in tpc_abort
    self.queue.abort()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.6.egg/Products/CMFCore/indexing.py", line 239, in abort
    for name, util in sm.getUtilitiesFor(IIndexQueueProcessor):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-4.6.0-py3.6-linux-x86_64.egg/zope/interface/registry.py", line 290, in getUtilitiesFor
    for name, utility in self.utilities.lookupAll((), interface):
AttributeError: 'PersistentAdapterRegistry' object has no attribute 'lookupAll'

So, the fix with failing add-ons, we finally added, results in:

  • site is created w/o addon,
  • portal message with error (or warning?) is displayed after creation.
  • all exceptions are all logged.

Latter is what you posted. What's missing?

Tr

So, the fix with failing add-ons, we finally added, results in:

  • site is created w/o addon,
  • portal message with error (or warning?) is displayed after creation.
  • all exceptions are all logged.

Latter is what you posted. What's missing?

True when you create Plone site through the web. But my observation is true when you use addPloneSite from a browser view or a script creating the site.

The new behavior is also weird and does not make sense.

I created a new site with a policy package throwing this mentioned error. Plone now says that the policy package could not be installed but it installed all its dependencies specified in metadata.xml. Sorry but this is completely odd. If I can not install the main policy package then Plone must not install any dependencies. This is broken.

True when you create Plone site through the web. But my observation is true when you use addPloneSite from a browser view or a script creating the site.

In what way is the result different than when creating a Plone site through the web? From a browser view or script I would currently expect the same thing: you get tracebacks in the logs, the faulty add-on is _not_ installed, but the site gets created anyway. Do you see different behavior?

Anyway, sounds like you want someone to implement what I proposed here and what Jens basically seconded here.

If one has an buggy add-on the admin has to deal with it anyway. It is not Plone's fault. Plone just can fail completely, which is difficult in our case, or - as it is now - it can print big red error messages and lengthy tracebacks.

So, yes we can enhance the code to fail and rollback all. I have no good idea how to achieve this, maybe only by deleting all that was prior created?

But I dont think the current situation is a bug nor a blocker.

If this is that important to you @zopyx please open an new issue as an "enhancement". If you - or another person thinking it is important enough - will work on it it is more than fine. We for sure will merge it, because it is the more elegant solution.

But as said, from my POV this edge case handling of a failing third party addon is not worth spending more time.

The current behavior is broken.

If you are trying to install an add-on then the complete installation of the add-on including all of its dependencies must either work completely or the transaction must be rolled back.

This is no longer the case case here.

My the installation of the policy package with an error failed but it installed its dependencies correctly. This is undesired behavior. This leaves the a Plone installation in an undefined state.
The only possible and valid option is a complete rollback and not a partial commit.

Please open a new issue. This is not a blocker. Its a special case with broken third party code. Thanks.

PS.: We had a conscious decision that the current state is good enough.
PPS.: The problem is logged and the administrator gets enough information to solve the issue. S/He has to act manually and delete the unfinished site. No harm done to any existing content.

Was this page helpful?
0 / 5 - 0 ratings