I’m using Lilac release, when I add Adventure XBlock & publish the unit, it throws the following errors in the console log.
2021-12-23 15:01:10,097 ERROR 1234 [edx.celery.task] [user 3] [ip 172.22.0.1] tasks.py:121 - BlockStructure: update_course_in_cache_v2 encountered unknown error in course course-v1:pakx+ITC01+2021_ITC, task_id d86402b5-828a-4a45-8893-ecd4600693f0. Retry #0
Traceback (most recent call last):
File "/edx/app/edxapp/edx-platform/openedx/core/djangoapps/content/block_structure/tasks.py", line 107, in _call_and_retry_if_needed
api_method(course_key)
File "/edx/app/edxapp/edx-platform/openedx/core/djangoapps/content/block_structure/api.py", line 32, in update_course_in_cache
return get_block_structure_manager(course_key).update_collected_if_needed()
File "/edx/app/edxapp/edx-platform/openedx/core/djangoapps/content/block_structure/manager.py", line 116, in update_collected_if_needed
self._update_collected()
File "/edx/app/edxapp/edx-platform/openedx/core/djangoapps/content/block_structure/manager.py", line 129, in _update_collected
self.store.add(block_structure)
File "/edx/app/edxapp/edx-platform/openedx/core/djangoapps/content/block_structure/store.py", line 70, in add
serialized_data = self._serialize(block_structure)
File "/edx/app/edxapp/edx-platform/openedx/core/djangoapps/content/block_structure/store.py", line 205, in _serialize
return zpickle(data_to_cache)
File "/edx/app/edxapp/edx-platform/openedx/core/lib/cache_utils.py", line 209, in zpickle
return zlib.compress(pickle.dumps(data, 4)) # Keep this constant as we upgrade from python 2 to 3.
_pickle.PicklingError: Can't pickle <class 'xblock.internal.AdventureBlockWithMixins'>: attribute lookup AdventureBlockWithMixins on xblock.internal failed
2021-12-23 15:01:10,099 INFO 1234 [celery.app.trace] [user 3] [ip 172.22.0.1] trace.py:125 - Task openedx.core.djangoapps.content.block_structure.tasks.update_course_in_cache_v2[d86402b5-828a-4a45-8893-ecd4600693f0] retry: Retry in 30s: PicklingError("Can't pickle <class 'xblock.internal.AdventureBlockWithMixins'>: attribute lookup AdventureBlockWithMixins on xblock.internal failed")
> /edx/app/edxapp/edx-platform/openedx/core/lib/cache_utils.py(209)zpickle()
-> return zlib.compress(pickle.dumps(data, 4)) # Keep this constant as we upgrade from python 2 to 3.
Steps to produce
- Add Adventure XBlock in any unit on Lilac
- Publish the unit and observe the logs