(SOLVED) Error on start: __new__() is not safe

Uh-oh. After upgrading to Debian 9, re-running buildout and restarting, my poor old Plone 4.9 site complains on access:

Traceback (innermost last):

Module ZPublisher.Publish, line 249, in publish_module_standard
Module ZPublisher.Publish, line 197, in publish
Module zope.event, line 31, in notify
Module zope.component.event, line 24, in dispatch
Module zope.component._api, line 136, in subscribers
Module ZODB.Connection, line 860, in setstate
Module ZODB.Connection, line 914, in _setstate
Module ZODB.serialize, line 612, in setGhostState
Module ZODB.serialize, line 605, in getState
Module copy_reg, line 48, in _reconstructor
TypeError: ('object.__new__(PersistentResourceDirectory) is not safe, use Persistence.Persistent.__new__()', <function _reconstructor at 0x7f1703782a28>, (<class 'plone.resource.directory.PersistentResourceDirectory'>, <type 'object'>, None))

Any pointers?

Hm googling revealed this can happen if eggs are removed - but I have not removed any eggs...

Yes, I ran the wrong buildout config file :frowning: So the generated scripts did not have paths for all the eggs. Did I say I sometimes hate buildout? Oh well.

Steps to debug:

  1. Run Plone (client) in debug mode
  2. Try to access content ('app.something')
  3. Check resulting import errors -> missing eggs or missing paths in scripts pointing to them