Message257526
Thank you for your report Anil.
Python 3.4.3 creates incorrect pickle with protocol 2 (it can't be load in Python 2). issue18473 fixed pickling with protocol 2 in Python 3, but broke loading broken pickles created in unpatched versions of Python 3.
Here is a patch that allows to load such broken pickles.
But it is too late to fix Python 3.4, it can get only security fixes. You have Celery specific workaround. More general workaround is to update _compact_pickle.IMPORT_MAPPING, e.g.:
import _compact_pickle
_compact_pickle.IMPORT_MAPPING.update({
'UserDict': 'collections',
'UserList': 'collections',
'UserString': 'collections',
'whichdb': 'dbm',
'StringIO': 'io',
'cStringIO': 'io',
})
Note that you have to set mapping not just for one module name like 'UserList', but for all 'UserDict', 'UserList', and 'UserString', because it is not predicable to what module name 'collections' is mapped in Python 3.4.3. |
|
Date |
User |
Action |
Args |
2016-01-05 09:18:35 | serhiy.storchaka | set | recipients:
+ serhiy.storchaka, pitrou, alexandre.vassalotti, anilredshift |
2016-01-05 09:18:35 | serhiy.storchaka | set | messageid: <1451985515.78.0.997536531372.issue26013@psf.upfronthosting.co.za> |
2016-01-05 09:18:35 | serhiy.storchaka | link | issue26013 messages |
2016-01-05 09:18:35 | serhiy.storchaka | create | |
|