Hi All,
I was able to upgraded from ironwood to Juniper. Barring a few hiccups, the upgrade was successful. However some of the content/courseware is not being rendered by the LMS. Please note that the same content is available on CMS/Studio.
The exception is in handling of StudentModule.DoesNotExist exception
Below is the error log:
lms_1 | 2020-06-18 10:50:14,182 ERROR 9 [edx.courseware] [user 5] views.py:699 - Error in /courses/course-v1:edX+DemoX+Demo_Course/courseware/interactive_demonstrations/19a30717eff543078a5d94ae9d6c18a5/2: user=shashi.kiran, effective_user=shashi.kiran, course=course-v1:edX+DemoX+Demo_Course
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 538, in get_or_create
lms_1 | return self.get(**kwargs), False
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 408, in get
lms_1 | self.model._meta.object_name
lms_1 | lms.djangoapps.courseware.models.StudentModule.DoesNotExist: StudentModule matching query does not exist.
lms_1 |
lms_1 | During handling of the above exception, another exception occurred:
lms_1 |
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 166, in ensure_defaults
lms_1 | conn = self.databases[alias]
lms_1 | KeyError: 'student_module_history'
lms_1 |
lms_1 | During handling of the above exception, another exception occurred:
lms_1 |
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/transaction.py", line 115, in mark_for_rollback_on_error
lms_1 | yield
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 779, in save_base
lms_1 | force_update, using, update_fields,
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 870, in _save_table
lms_1 | result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 908, in _do_insert
lms_1 | using=using, raw=raw)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/manager.py", line 82, in manager_method
lms_1 | return getattr(self.get_queryset(), name)(*args, **kwargs)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 1186, in _insert
lms_1 | return query.get_compiler(using=using).execute_sql(return_id)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/sql/query.py", line 288, in get_compiler
lms_1 | connection = connections[using]
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 198, in __getitem__
lms_1 | self.ensure_defaults(alias)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 168, in ensure_defaults
lms_1 | raise ConnectionDoesNotExist("The connection %s doesn't exist" % alias)
lms_1 | django.db.utils.ConnectionDoesNotExist: The connection student_module_history doesn't exist
lms_1 |
lms_1 | During handling of the above exception, another exception occurred:
lms_1 |
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 166, in ensure_defaults
lms_1 | conn = self.databases[alias]
lms_1 | KeyError: 'student_module_history'
lms_1 |
lms_1 | During handling of the above exception, another exception occurred:
lms_1 |
lms_1 | Traceback (most recent call last):
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/views/index.py", line 165, in get
lms_1 | return self.render(request)
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/views/index.py", line 267, in render
lms_1 | return render_to_response('courseware/courseware.html', self._create_courseware_context(request))
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/views/index.py", line 502, in _create_courseware_context
lms_1 | courseware_context['fragment'] = self.section.render(self.view, section_context)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/core.py", line 202, in render
lms_1 | return self.runtime.render(self, view, context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1979, in render
lms_1 | return self.__getattr__('render')(block, view_name, context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1423, in render
lms_1 | return super(MetricsMixin, self).render(block, view_name, context=context)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/runtime.py", line 829, in render
lms_1 | frag = view_fn(context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 293, in student_view
lms_1 | return self._student_or_public_view(context, prereq_met, prereq_meta_info, banner_text)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 401, in _student_or_public_view
lms_1 | params = self._get_render_metadata(context, display_items, prereq_met, prereq_meta_info, banner_text, view, fragment)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 371, in _get_render_metadata
lms_1 | items = self._render_student_view_for_items(context, display_items, fragment, view) if prereq_met else []
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 534, in _render_student_view_for_items
lms_1 | rendered_item = item.render(view, context)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/core.py", line 202, in render
lms_1 | return self.runtime.render(self, view, context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1979, in render
lms_1 | return self.__getattr__('render')(block, view_name, context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1423, in render
lms_1 | return super(MetricsMixin, self).render(block, view_name, context=context)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/runtime.py", line 829, in render
lms_1 | frag = view_fn(context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/vertical_block.py", line 118, in student_view
lms_1 | return self._student_or_public_view(context, STUDENT_VIEW)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/vertical_block.py", line 84, in _student_or_public_view
lms_1 | rendered_child = child.render(view, child_block_context)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/core.py", line 202, in render
lms_1 | return self.runtime.render(self, view, context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1979, in render
lms_1 | return self.__getattr__('render')(block, view_name, context)
lms_1 | File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1423, in render
lms_1 | return super(MetricsMixin, self).render(block, view_name, context=context)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/runtime.py", line 832, in render
lms_1 | block.save()
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/mixins.py", line 255, in save
lms_1 | self.force_save_fields(fields_to_save)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/mixins.py", line 270, in force_save_fields
lms_1 | self._field_data.set_many(self, fields_to_save_json)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/field_data.py", line 170, in set_many
lms_1 | field_data.set_many(block, new_update_dict)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/field_data.py", line 170, in set_many
lms_1 | field_data.set_many(block, new_update_dict)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/xblock/runtime.py", line 228, in set_many
lms_1 | self._kvs.set_many(updated_dict)
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/model_data.py", line 137, in set_many
lms_1 | self._field_data_cache.set_many(kv_dict)
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/model_data.py", line 858, in set_many
lms_1 | self.cache[scope].set_many(set_many_data)
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/model_data.py", line 420, in set_many
lms_1 | pending_updates
lms_1 | File "/openedx/edx-platform/lms/djangoapps/courseware/user_state_client.py", line 254, in set_many
lms_1 | 'module_type': usage_key.block_type,
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/manager.py", line 82, in manager_method
lms_1 | return getattr(self.get_queryset(), name)(*args, **kwargs)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 541, in get_or_create
lms_1 | return self._create_object_from_params(kwargs, params)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 575, in _create_object_from_params
lms_1 | obj = self.create(**params)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/query.py", line 422, in create
lms_1 | obj.save(force_insert=True, using=self.db)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 741, in save
lms_1 | force_update=force_update, update_fields=update_fields)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 790, in save_base
lms_1 | update_fields=update_fields, raw=raw, using=using,
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/dispatch/dispatcher.py", line 175, in send
lms_1 | for receiver in self._live_receivers(sender)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/dispatch/dispatcher.py", line 175, in <listcomp>
lms_1 | for receiver in self._live_receivers(sender)
lms_1 | File "/openedx/edx-platform/lms/djangoapps/coursewarehistoryextended/models.py", line 59, in save_history
lms_1 | history_entry.save()
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 741, in save
lms_1 | force_update=force_update, update_fields=update_fields)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/models/base.py", line 779, in save_base
lms_1 | force_update, using, update_fields,
lms_1 | File "/opt/pyenv/versions/3.5.9/lib/python3.5/contextlib.py", line 77, in __exit__
lms_1 | self.gen.throw(type, value, traceback)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/transaction.py", line 117, in mark_for_rollback_on_error
lms_1 | connection = get_connection(using)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/transaction.py", line 20, in get_connection
lms_1 | return connections[using]
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 198, in __getitem__
lms_1 | self.ensure_defaults(alias)
lms_1 | File "/openedx/venv/lib/python3.5/site-packages/django/db/utils.py", line 168, in ensure_defaults
lms_1 | raise ConnectionDoesNotExist("The connection %s doesn't exist" % alias)
lms_1 | django.db.utils.ConnectionDoesNotExist: The connection student_module_history doesn't exist
lms_1 | 2020-06-18 10:50:14,480 ERROR 9 [django.request] [user None] log.py:228 - Internal Server Error: /courses/course-v1:edX+DemoX+Demo_Course/courseware/interactive_demonstrations/19a30717eff543078a5d94ae9d6c18a5/2