Adding UTF-8 encoded characters to a node breaks the whole XBlock
I added this text to a node:
±ÑJz2zú¿Ø
¤^?åmÁæ}¤
$/<89>å^F
And then I saved my graph. Saving didn't really work and next thing I know the whole XBlock doesn't load anymore:
Logs:
[28/Sep/2018 07:39:48] "POST /xblock/block-v1:maarten+MP101+2018_MP+type@grapheditorxblock+block@8fe566e3447c4020929d34c1629e3a43/handler/save_xml HTTP/1.1" 200 3840
2018-09-28 07:39:48,497 INFO 118 [tracking] logger.py:50 - {"username": "staff", "event_type": "/xblock/block-v1:maarten+MP101+2018_MP+type@grapheditorxblock+block@8fe566e3447c4020929d34c1629e3a43/reorderable_container_child_preview", "ip": "192.168.99.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/69.0.3497.81 Chrome/69.0.3497.81 Safari/537.36", "host": "ab108fa6fde2", "referer": "http://192.168.99.100:18010/container/block-v1:maarten+MP101+2018_MP+type@vertical+block@db23d8d1cebb44feafdb37e5976db20f", "accept_language": "en,en-GB;q=0.9,nl;q=0.8", "event": "{\"POST\": {}, \"GET\": {\"_\": [\"1538128806621\"]}}", "event_source": "server", "context": {"user_id": 9, "org_id": "", "course_id": "", "path": "/xblock/block-v1:maarten+MP101+2018_MP+type@grapheditorxblock+block@8fe566e3447c4020929d34c1629e3a43/reorderable_container_child_preview"}, "time": "2018-09-28T11:39:48.496797+00:00", "page": null}
2018-09-28 07:39:48,615 WARNING 118 [contentstore.views.preview] preview.py:329 - Unable to render student_view for <GraphEditorXBlockWithMixins @19B8 xml=u'<mxGraphModel dx="826" dy="665" grid=...', video_auto_advance=False, graded=False, parent=BlockUsageLocator(CourseLocator(u'maarten', u'MP101', u'2018_MP', None, None), u'vertical', u'db23d8d1cebb44feafdb37e5976db20f'), tags=[], matlab_api_key=None, xqa_key=None, format=None, giturl=None, edxnotes=False, source_file=None, use_latex_compiler=False, video_bumper={}, course_edit_method=u'Studio', show_correctness=u'always', default_tab=None, static_asset_path=u'', hide_from_toc=False, in_entrance_exam=False, showanswer=u'finished', display_name=None, name=None, group_access={}, video_speed_optimizations=True, graceperiod=None, rerandomize=u'never', due=None, user_partitions=[], start=datetime.datetime(2030, 1, 1, 0, 0, tzinfo=tzutc()), edxnotes_visibility=True, show_reset_button=False, days_early_for_beta=None, max_attempts=None, chrome=None, self_paced=False, visible_to_staff_only=False>
Traceback (most recent call last):
File "/edx/app/edxapp/edx-platform/cms/djangoapps/contentstore/views/preview.py", line 327, in get_preview_fragment
fragment = module.render(preview_view, context)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/core.py", line 202, in render
return self.runtime.render(self, view, context)
File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1907, in render
return self.__getattr__('render')(block, view_name, context)
File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1314, in render
return super(MetricsMixin, self).render(block, view_name, context=context)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/runtime.py", line 810, in render
frag = view_fn(context)
File "/edx/app/edxapp/xblocks/ind/grapheditorxblock/grapheditorxblock.py", line 108, in student_view
return self._common_view(read_only=True)
File "/edx/app/edxapp/xblocks/ind/grapheditorxblock/grapheditorxblock.py", line 89, in _common_view
byte_str = str(self.xml).encode("utf-8")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 513-514: ordinal not in range(128)
[28/Sep/2018 07:39:48] "GET /xblock/block-v1:maarten+MP101+2018_MP+type@grapheditorxblock+block@8fe566e3447c4020929d34c1629e3a43/reorderable_container_child_preview?_=1538128806621 HTTP/1.1" 200 668
2018-09-28 07:39:48,882 INFO 118 [tracking] logger.py:50 - {"username": "staff", "event_type": "/xblock/container/block-v1:maarten+MP101+2018_MP+type@vertical+block@db23d8d1cebb44feafdb37e5976db20f", "ip": "192.168.99.1", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/69.0.3497.81 Chrome/69.0.3497.81 Safari/537.36", "host": "ab108fa6fde2", "referer": "http://192.168.99.100:18010/container/block-v1:maarten+MP101+2018_MP+type@vertical+block@db23d8d1cebb44feafdb37e5976db20f", "accept_language": "en,en-GB;q=0.9,nl;q=0.8", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 9, "org_id": "", "course_id": "", "path": "/xblock/container/block-v1:maarten+MP101+2018_MP+type@vertical+block@db23d8d1cebb44feafdb37e5976db20f"}, "time": "2018-09-28T11:39:48.881703+00:00", "page": null}
[28/Sep/2018 07:39:49] "GET /xblock/container/block-v1:maarten+MP101+2018_MP+type@vertical+block@db23d8d1cebb44feafdb37e5976db20f HTTP/1.1" 200 10033