2

Site with Plone 4.2.5 was upgraded to Plone 4.3.4.

When doing a check-out of an object, the following error is shown:

2015-04-22T01:18:16 ERROR Zope.SiteErrorLog 1429676296.560.86437176197 http://localhost:8181/Plone/capa/@@content-checkout
Traceback (innermost last):
  Module ZPublisher.Publish, line 146, in publish
  Module Zope2.App.startup, line 301, in commit
  Module transaction._manager, line 89, in commit
  Module transaction._transaction, line 329, in commit
  Module transaction._transaction, line 443, in _commitResources
  Module ZODB.Connection, line 559, in commit
  Module ZODB.Connection, line 1123, in savepoint
  Module ZODB.Connection, line 623, in _commit
  Module ZODB.Connection, line 658, in _store_objects
  Module ZODB.serialize, line 422, in serialize
  Module ZODB.serialize, line 431, in _dump
PicklingError: Can't pickle <class 'plone.app.kss.interfaces.IPortalObject'>: import of module plone.app.kss.interfaces failed

No objects on the catalog provide plone.app.kss.interfaces.IPortalObject.

Any idea?

hvelarde
  • 2,875
  • 14
  • 34
  • 1
    I think you have to list kss explicitly in your buildout now. I'll look up the package name at work, probably `plone.app.kss` ;) – Ulrich Schwarz Apr 22 '15 at 04:29
  • I have an explicit `eggs += kss.core` in my migration trial instance, and I can't think I'd put it there without a reason. Maybe that'll help? – Ulrich Schwarz Apr 22 '15 at 05:16
  • Thanks, Ulrich; that in fact is a workaround, but I would like to clean the ZODB to avoid it. – hvelarde Apr 22 '15 at 12:04
  • nasty problem. Hate missing interfaces. Matthew wilkes wrote a clever addon to be able to provide class stubs for missing classes--forgot the name right now. You might want to ping him. – vangheem May 07 '15 at 04:33

1 Answers1

2

You should always read the Plone upgrade guide before doing a migration:

https://plone.org/documentation/manual/upgrade-guide/version/upgrading-plone-4.2-to-4.3/referencemanual-all-pages

plone.app.kss is no longer shipped with Plone 4.3.x. You have to re-add it to your buildout.cfg:

eggs =
    ...
    plone.app.kss

Though, I would suggest that you clean up your ZODB after the upgrade. Otherwise you will run into problems since plone.app.kss is unmaintained.

tisto
  • 1,337
  • 7
  • 13
  • I know KSS is no longer shipped with Plone 4.3 and I know Plone 4.3 has upgrade steps to remove it from the ZODB; what I don't understand is why I'm having this unexpected error. Is this a bug? How do I clean my ZODB after the upgrade? This interface is blacklisted on [CatalogTool.py](https://github.com/plone/Products.CMFPlone/blob/4.3.4.1/Products/CMFPlone/CatalogTool.py#L73). – hvelarde Apr 22 '15 at 12:03
  • Have you tried looking at how the Plone 4.3 upgrade steps handle this? Could be that plone.app.iterate was forgotten in the upgrade step. I'd say this is most likely a bug. – tisto Apr 22 '15 at 14:49
  • 1
    Just a guess, but there's a known issue between 4.2.x and 4.3.x where zc.relation's catalog causes issues because of storing interface names and I'm not sure if that has an upgrade step yet. E.g. http://stackoverflow.com/questions/20290361/how-to-clean-up-old-interfaces-on-zc-relation-catalog – Asko Soukka Apr 24 '15 at 04:30
  • thanks, Asko; I don't know if that is related with that issue but it seems to be related with another one I had on the same migration. – hvelarde May 12 '15 at 19:03