Plone 4.1 to 4.3 upgrade

Hi
I am running version 4.1.3
I can't find a 4.2 version to jump to before going to 4.3
when i go to version 4.3 it detects it needs to upgrade.
all the plugins have already been updated via buildout successfully.

error on plone upgrade is as follows:

I get some errors about dependencies with graphviz but it skips those and continues past miscellanous all ok, then fails right here:

Analyzing sortable_title index
Updating sortable_title index
Upgrade aborted. Error:
Traceback (most recent call last):
File "/Data/Plone4/buildout-cache/eggs/Products.CMFPlone-4.3.14-py2.7.egg/Products/CMFPlone/MigrationTool.py", line 259, in upgrade
step['step'].doStep(setup)
File "/Data/Plone4/buildout-cache/eggs/Products.GenericSetup-1.8.6-py2.7.egg/Products/GenericSetup/upgrade.py", line 166, in doStep
self.handler(tool)
File "/Data/Plone4/buildout-cache/eggs/plone.app.upgrade-1.4.1-py2.7.egg/plone/app/upgrade/v43/alphas.py", line 125, in to43alpha1
reindex_sortable_title(context)
File "/Data/Plone4/buildout-cache/eggs/plone.app.upgrade-1.4.1-py2.7.egg/plone/app/upgrade/v43/alphas.py", line 51, in reindex_sortable_title
obj.reindexObject(idxs=['sortable_title'])
File "/Data/Plone4/buildout-cache/eggs/Products.Archetypes-1.9.13-py2.7.egg/Products/Archetypes/CatalogMultiplex.py", line 118, in reindexObject
c.catalog_object(self, url, idxs=lst)
File "/Data/Plone4/buildout-cache/eggs/Products.CMFPlone-4.3.14-py2.7.egg/Products/CMFPlone/CatalogTool.py", line 349, in catalog_object
update_metadata, pghandler=pghandler)
File "/Data/Plone4/buildout-cache/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/ZCatalog.py", line 476, in catalog_object
update_metadata=update_metadata)
File "/Data/Plone4/buildout-cache/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/Catalog.py", line 340, in catalogObject
self.updateMetadata(object, uid, index)
File "/Data/Plone4/buildout-cache/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/Catalog.py", line 284, in updateMetadata
newDataRecord = self.recordify(object)
File "/Data/Plone4/buildout-cache/eggs/Products.ZCatalog-2.13.27-py2.7.egg/Products/ZCatalog/Catalog.py", line 408, in recordify
attr = getattr(object, x, MV)
File "/Data/Plone4/buildout-cache/eggs/plone.indexer-1.0.4-py2.7.egg/plone/indexer/wrapper.py", line 63, in getattr
return indexer()
File "/Data/Plone4/buildout-cache/eggs/plone.indexer-1.0.4-py2.7.egg/plone/indexer/delegate.py", line 20, in call
return self.callable(self.context)
File "/Data/Plone4/buildout-cache/eggs/Products.CMFPlone-4.3.14-py2.7.egg/Products/CMFPlone/CatalogTool.py", line 210, in getObjSize
size = obj.get_size()
File "/Data/Plone4/buildout-cache/eggs/Products.ATContentTypes-2.1.19-py2.7.egg/Products/ATContentTypes/content/base.py", line 194, in get_size
return f.get_size(self) or 0
File "/Data/Plone4/buildout-cache/eggs/plone.app.blob-1.5.17-py2.7.egg/plone/app/blob/field.py", line 321, in get_size
return blob.get_size()
File "/Data/Plone4/buildout-cache/eggs/plone.app.blob-1.5.17-py2.7.egg/plone/app/blob/field.py", line 129, in get_size
blob = openBlob(self.blob)
File "/Data/Plone4/buildout-cache/eggs/plone.app.blob-1.5.17-py2.7.egg/plone/app/blob/utils.py", line 52, in openBlob
return blob.open(mode)
SystemError: error return without exception set
End of upgrade path, main migration has finished.
The upgrade path did NOT reach current version.
Migration has failed
Dry run selected, transaction aborted

Version Overview

Plone 4.3.14
Zope 2.13.26
Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609]

The first think I would try, is to clear and rebuild the portal_catalog and try it again.

hi, thanks for info
when i tried that, i got a similar error.
it's also displaying funny, however I did copy the blob storage over, but it looks like it is not showing up somehow.
permissions for ownership and attributes look ok on blob storage?

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.CatalogTool, line 442, in manage_catalogRebuild
Module plone.app.discussion.patches, line 47, in patchedClearFindAndRebuild
Module OFS.FindSupport, line 239, in ZopeFindAndApply
Module OFS.FindSupport, line 239, in ZopeFindAndApply
Module OFS.FindSupport, line 227, in ZopeFindAndApply
Module plone.app.discussion.patches, line 26, in indexObject
Module Products.Archetypes.CatalogMultiplex, line 39, in indexObject
Module Products.CMFPlone.CatalogTool, line 349, in catalog_object
Module Products.ZCatalog.ZCatalog, line 476, in catalog_object
Module Products.ZCatalog.Catalog, line 334, in catalogObject
Module Products.ZCatalog.Catalog, line 284, in updateMetadata
Module Products.ZCatalog.Catalog, line 408, in recordify
Module plone.indexer.wrapper, line 63, in getattr
Module plone.indexer.delegate, line 20, in call
Module Products.CMFPlone.CatalogTool, line 210, in getObjSize
Module Products.ATContentTypes.content.base, line 194, in get_size
Module plone.app.blob.field, line 321, in get_size
Module plone.app.blob.field, line 129, in get_size
Module plone.app.blob.utils, line 52, in openBlob
Module ZODB.Connection, line 860, in setstate
Module ZODB.Connection, line 922, in _setstate
Module ZODB.blob, line 644, in loadBlob
POSKeyError: 'No blob file'

here is the file structure for blobstorage and more on the error:
2017-07-31T19:47:34 ERROR ZODB.Connection Couldn't load state for 0x94c2
Traceback (most recent call last):
File "/Data/Plone4/buildout-cache/eggs/ZODB3-3.10.7-py2.7-linux-i686.egg/ZODB/Connection.py", line 860, in setstate
self._setstate(obj)
File "/Data/Plone4/buildout-cache/eggs/ZODB3-3.10.7-py2.7-linux-i686.egg/ZODB/Connection.py", line 922, in _setstate
obj._p_blob_committed = self._storage.loadBlob(obj._p_oid, serial)
File "/Data/Plone4/buildout-cache/eggs/ZODB3-3.10.7-py2.7-linux-i686.egg/ZODB/blob.py", line 644, in loadBlob
raise POSKeyError("No blob file", oid, serial)
POSKeyError: 'No blob file'

2017-07-31T19:47:34 ERROR Zope.SiteErrorLog 1501530454.270.545684099589 http://10.1.1.54:8080/sysdocs/portal_catalog/manage_catalogRebuild
Traceback (innermost last):
root@(none):/Data/Plone4/zinstance/var# ll
total 40
drwxrws--- 7 plone_buildout plone_group 4096 Jul 31 19:02 ./
drwxr-sr-x 9 plone_buildout plone_group 4096 Jul 31 18:30 ../
drwxrws--- 4 plone_buildout plone_group 4096 Jul 31 18:47 blobstorage/
drwxrws--- 2 plone_buildout plone_group 4096 Jul 31 18:57 filestorage/
drwxrws--- 3 plone_buildout plone_group 4096 Jul 31 19:02 instance/
-rw-r--r-- 1 plone_daemon plone_group 5 Jul 31 19:02 instance.lock
-rw-r--r-- 1 plone_daemon plone_group 5 Jul 31 19:02 instance.pid
drwxrws--- 2 plone_buildout plone_group 4096 Jul 31 17:08 log/
drwxrws--- 2 plone_buildout plone_group 4096 Jul 31 18:28 .python-eggs/
-rw-rw---- 1 plone_buildout plone_group 79 Jul 31 16:38 README.txt

to copy over both the ZODB and the blob files use the backup or snapshotbackup function.
You have to make sure your Data.fs and the bobstorage are in the same state, otherwise you will get errors like this.
If you don't want to use the backup functions, you can just copy the Data.fs and the blobstorage but use something like this:

tar -czf blobstorage.tar.gz blobstorage

or if you want a local copy use the archive flag:

cp -a blobstorage ../../plonecopy/var/

the user who is running plone has to have the permissions on all the files of course :wink:

And by using the zipbackup functionality one doesn't need to create an archive of the blob backups folder :wink:

hi
yes running it as plone_buildout, also tried running as root, which automatically flips privileges to the plone user to start the instance.

i had plone shutoff when i took the backup of the plone instance both Data.fs and blob storage. i did scp of data.fs which worked ok.
i tried SCP of the shut down blob storage, and i also followed the instructions of this URL and tried using rsync to sync the blob storage.
i'll try the zipbackup functionality.
i did use tar for blob storage and data.fs but apparently that didn't work.
will try fresh copying both data.fs and zodb that way.

hi
shut down the old plone instance on old server
copied Data.fs and blobstorage via rsync
copied ok, same file size.
started instance on new server.
starts ok, permissions are temporarily 777 for the whole plone folder recursively.

when i go to clean and build catalog i get same error:

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.CatalogTool, line 442, in manage_catalogRebuild
Module plone.app.discussion.patches, line 47, in patchedClearFindAndRebuild
Module OFS.FindSupport, line 239, in ZopeFindAndApply
Module OFS.FindSupport, line 239, in ZopeFindAndApply
Module OFS.FindSupport, line 227, in ZopeFindAndApply
Module plone.app.discussion.patches, line 26, in indexObject
Module Products.Archetypes.CatalogMultiplex, line 39, in indexObject
Module Products.CMFPlone.CatalogTool, line 349, in catalog_object
Module Products.ZCatalog.ZCatalog, line 476, in catalog_object
Module Products.ZCatalog.Catalog, line 334, in catalogObject
Module Products.ZCatalog.Catalog, line 284, in updateMetadata
Module Products.ZCatalog.Catalog, line 408, in recordify
Module plone.indexer.wrapper, line 63, in getattr
Module plone.indexer.delegate, line 20, in call
Module Products.CMFPlone.CatalogTool, line 210, in getObjSize
Module Products.ATContentTypes.content.base, line 194, in get_size
Module plone.app.blob.field, line 321, in get_size
Module plone.app.blob.field, line 129, in get_size
Module plone.app.blob.utils, line 52, in openBlob
Module ZODB.Connection, line 860, in setstate
Module ZODB.Connection, line 922, in _setstate
Module ZODB.blob, line 644, in loadBlob
POSKeyError: 'No blob file'

figured it out.
even though i was using tiered "bushy" blobstorage, the .layout from the 4.1.3 version had "lawn" flat file storage.

by changing it to bushy blobstorage, it booted up fine, and i can clear and rebuild the db.
upgrade also worked
whew!

1 Like