Ticket #1140 (closed defect: wontfix)

Opened 14 years ago

Last modified 14 years ago

update fails if set up for LDAP

Reported by: mihamina Owned by: fguillaume
Priority: P2 Milestone: CPS 3.4.0
Component: CPSDirectory Version: TRUNK
Severity: normal Keywords: directory update ldap
Cc: mihamina.rakotomandimby@…

Description (last modified by fguillaume) (diff)

I installed  this product to use LDAP. That means the directory structure is not a default one anymore. I had  this problem that should be solved by installing the latest trunk version. Unfortunately, when updating CPS (with the cpsupdate ext. method):

Traceback (innermost last):
    * Module ZPublisher.Publish, line 113, in publish
    * Module ZPublisher.mapply, line 88, in mapply
    * Module ZPublisher.Publish, line 40, in call_object
    * Module Products.ExternalMethod.ExternalMethod, line 225, in __call__
      __traceback_info__: ((<CPSDefaultSite at /cps>, None, 0, 'portlets'), {}, (None, 0, 'portlets'))
    * Module /usr/lib/zope/lib/python/Products/CPSDefault/Extensions/cpsinstall.py, line 2025, in cpsupdate
    * Module /usr/lib/zope/lib/python/Products/CPSDefault/Extensions/cpsinstall.py, line 194, in install
    * Module /usr/lib/zope/lib/python/Products/CPSDefault/Extensions/cpsinstall.py, line 1621, in fixupRoots
    * Module Products.CPSSchemas.DataModel, line 320, in _commit
    * Module Products.CPSSchemas.DataModel, line 346, in _commitData
    * Module Products.CPSSchemas.StorageAdapter, line 143, in setData
    * Module Products.CPSSchemas.StorageAdapter, line 174, in _setData
    * Module Products.CPSSchemas.StorageAdapter, line 191, in _setDataDoProcess
    * Module Products.CPSSchemas.Field, line 265, in processValueBeforeWrite
    * Module Products.CMFCore.Expression, line 44, in __call__
    * Module Products.PageTemplates.ZRPythonExpr, line 47, in __call__
      __traceback_info__: modules["Products.CPSDefault.utils"].computeContributors(portal, value)
    * Module Python expression "modules["Products.CPSDefault.utils"].computeContributors(portal, value)", line 1, in <expression>
    * Module Products.CPSDefault.utils, line 153, in computeContributors
    * looping part:
    * Module Products.CPSDirectory.BaseDirectory, line 415, in _getEntry
    * Module Products.CPSDirectory.BaseDirectory, line 882, in _getDataModel
    * Module Products.CPSSchemas.DataModel, line 249, in _fetch
    * Module Products.CPSDirectory.MembersDirectory, line 327, in getData
    * Module Products.CPSDirectory.MembersDirectory, line 276, in _getMember
    * Module Products.CMFCore.MembershipTool, line 349, in getMemberById
    * Module Products.CMFCore.MembershipTool, line 359, in _huntUser
    * Module Products.CPSUserFolder.CPSUserFolder, line 442, in getUserById
    * Module Products.CPSUserFolder.CPSUserFolder, line 418, in getUser
    * Module Products.CPSUserFolder.CPSUserFolder, line 326, in getUserWithAuthentication
    * ... (loop)
RuntimeError: maximum recursion depth exceeded in cmp

Change History

comment:1 Changed 14 years ago by ogrisel

Indeed. I don't know if there is a clean solution to this propblem: cpsupdate wants to install directories that are not suitable with the user folder installed by the CPSUserFolderLDAPSetup product. A temporary workaround would be to delete the userfolder, run cpsupdate and then reinstall the CPSUserFolderLDAPSetup product (wich will reinstall its userfolder/directories in turn).

The long term solution would be to use PAS User Folder in both CPS and in the LDAPSetup product and to use CMFSetup instead of installers.

comment:2 Changed 14 years ago by fguillaume

  • Description modified (diff)

comment:3 Changed 14 years ago by fguillaume

  • Priority changed from P1 to P2
  • Severity changed from major to normal

This kind of update will be obsoleted by CMFSetup-based setups.

comment:4 Changed 14 years ago by ogrisel

  • Status changed from new to closed
  • Resolution set to wontfix

in the mean time, delete the userfolder, run cpsupdate and reinstall the LDAPSetup.

Note: See TracTickets for help on using tickets.