Tuple Assignment Error on Zeopack

I have a Plone 5.1.4 installation. In trying to pack the database, I get the error below:

plone@server:~/aa_site$ ./bin/zeopack
ZEO.asyncio.client ERROR Protocol(('127.0.0.1', 8300), '1', True) from server: exceptions.TypeError:("'tuple' object does not support item assignment",)
Traceback (most recent call last):
File "./bin/zeopack", line 55, in
sys.exit(plone.recipe.zeoserver.pack.main(host, port, unix, days, username, password, realm, blob_dir, storage))
File "/var/plone/aa_site/eggs/plone.recipe.zeoserver-1.4.2-py2.7.egg/plone/recipe/zeoserver/pack.py", line 65, in main
_main(*args, **kw)
File "/var/plone/aa_site/eggs/plone.recipe.zeoserver-1.4.2-py2.7.egg/plone/recipe/zeoserver/pack.py", line 46, in _main
cs.pack(wait=True, days=int(days))
File "/var/plone/aa_site/eggs/ZEO-5.1.1-py2.7.egg/ZEO/ClientStorage.py", line 560, in pack
return self._call('pack', t, wait)
File "/var/plone/aa_site/eggs/ZEO-5.1.1-py2.7.egg/ZEO/asyncio/client.py", line 764, in call
return self.__call(self.call_threadsafe, method, args, **kw)
File "/var/plone/aa_site/eggs/ZEO-5.1.1-py2.7.egg/ZEO/asyncio/client.py", line 743, in call
return self.wait_for_result(result, timeout)
File "/var/plone/aa_site/eggs/ZEO-5.1.1-py2.7.egg/ZEO/asyncio/client.py", line 756, in wait_for_result
return future.result(timeout)
File "/var/plone/aa_site/eggs/futures-3.1.1-py2.7.egg/concurrent/futures/_base.py", line 429, in result
return self.__get_result()
File "/var/plone/aa_site/eggs/futures-3.1.1-py2.7.egg/concurrent/futures/_base.py", line 381, in __get_result
raise exception_type, self._exception, self._traceback
TypeError: 'tuple' object does not support item assignment

My zeopack script contains:

#!/var/plone/aa_site/../venv/aa_py2.7.16/bin/python
import sys
sys.path[0:0] = [
'/var/plone/aa_site/eggs/plone.recipe.zeoserver-1.4.2-py2.7.egg',
'/var/plone/aa_site/eggs/zc.zrs-3.1.0-py2.7.egg',
'/var/plone/aa_site/eggs/ZopeUndo-4.3-py2.7.egg',
'/var/plone/aa_site/eggs/zope.mkzeoinstance-4.1-py2.7.egg',
'/var/plone/aa_site/eggs/ZODB3-3.11.0-py2.7.egg',
'/var/plone/aa_site/eggs/zc.recipe.egg-2.0.3-py2.7.egg',
'/var/plone/aa_site/eggs/zc.buildout-2.11.4-py2.7.egg',
'/var/plone/aa_site/eggs/setuptools-39.1.0-py2.7.egg',
'/var/plone/aa_site/eggs/ZODB-5.3.0-py2.7.egg',
'/var/plone/aa_site/eggs/Twisted-17.9.0-py2.7-linux-x86_64.egg',
'/var/plone/aa_site/eggs/six-1.10.0-py2.7.egg',
'/var/plone/aa_site/eggs/ZEO-5.1.1-py2.7.egg',
'/var/plone/aa_site/eggs/zdaemon-4.2.0-py2.7.egg',
'/var/plone/aa_site/eggs/transaction-2.1.2-py2.7.egg',
'/var/plone/aa_site/eggs/BTrees-4.4.1-py2.7-linux-x86_64.egg',
'/var/plone/aa_site/eggs/persistent-4.2.4.2-py2.7-linux-x86_64.egg',
'/var/plone/aa_site/eggs/zodbpickle-0.7.0-py2.7-linux-x86_64.egg',
'/var/plone/aa_site/eggs/zope.interface-4.4.3-py2.7-linux-x86_64.egg',
'/var/plone/aa_site/eggs/zc.lockfile-1.2.1-py2.7.egg',
'/var/plone/aa_site/eggs/ZConfig-3.1.0-py2.7.egg',
'/var/plone/aa_site/eggs/hyperlink-18.0.0-py2.7.egg',
'/var/plone/aa_site/eggs/Automat-0.6.0-py2.7.egg',
'/var/plone/aa_site/eggs/incremental-17.5.0-py2.7.egg',
'/var/plone/aa_site/eggs/constantly-15.1.0-py2.7.egg',
'/var/plone/aa_site/eggs/trollius-2.1-py2.7.egg',
'/var/plone/aa_site/eggs/futures-3.1.1-py2.7.egg',
'/var/plone/aa_site/eggs/idna-2.6-py2.7.egg',
'/var/plone/aa_site/eggs/attrs-17.4.0-py2.7.egg',
]
username = None
blob_dir = "/var/plone/aa_site/var/blobstorage/"
realm = None
storage = "1"
days = "90"
unix = None
address = "127.0.0.1:8300"
host = "127.0.0.1"
password = None
port = "8300"
import getopt; opts = getopt.getopt(sys.argv[1:], 'S:B:D:W1')[0];
opts = dict(opts)
storage = opts.has_key('-S') and opts['-S'] or storage
blob_dir = opts.has_key('-B') and opts['-B'] or blob_dir
days = opts.has_key('-D') and opts['-D'] or days
import plone.recipe.zeoserver.pack
if name == 'main':
sys.exit(plone.recipe.zeoserver.pack.main(host, port, unix, days, username, password, realm, blob_dir, storage))

Anyone experienced this issue before?

My issue has now been resolved.

The python version of my buildout was updated some time ago. I had to reinstall modules that used C extensions and needed to be recompiled for the new Python version. Most of these modules caused an error during startup so it was easy to know which ones needed to be removed so buildout can download and recompile them.

The zeoserver log showed that zodbpickle was causing the error so I reviewed its package description on PYPI and upon reading that it uses C extensions, I knew that I had to remove it. After it was reinstalled, zeopack was able to proceed without problems.

This issue could be related to another problem that I reported here (Missing.missing error)