Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cms/djangoapps/contentstore/views/course.py
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ def course_index(request, course_key):
"""
# A depth of None implies the whole course. The course outline needs this in order to compute has_changes.
# A unit may not have a draft version, but one of its components could, and hence the unit itself has changes.
with modulestore().bulk_operations(course_key):
with modulestore().bulk_temp_noop_operations(course_key): # FIXME
course_module = _get_course_module(course_key, request.user, depth=None)
lms_link = get_lms_link_for_item(course_module.location)
sections = course_module.get_children()
Expand Down
8 changes: 8 additions & 0 deletions common/lib/xmodule/xmodule/modulestore/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -566,6 +566,14 @@ def bulk_operations(self, course_id):
finally:
self._end_bulk_operation(course_id)

@contextmanager
def bulk_temp_noop_operations(self, course_id):
"""
A hotfix noop b/c old mongo does not properly handle nested bulk operations and does unnecessary work
if the bulk operation only reads data. Replace with bulk_operations once fixed (or don't merge to master)
"""
yield

def _begin_bulk_operation(self, course_id):
"""
Begin a bulk write operation on course_id.
Expand Down
3 changes: 2 additions & 1 deletion common/lib/xmodule/xmodule/modulestore/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ def find_path_to_course():
newpath = (next_usage, path)
queue.append((parent, newpath))

with modulestore.bulk_operations(usage_key.course_key):
# FIXME replace with bulk_operations once it's fixed for old mongo
with modulestore.bulk_temp_noop_operations(usage_key.course_key):
if not modulestore.has_item(usage_key):
raise ItemNotFoundError(usage_key)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,8 @@ def test_get_parent_locations_deleted_child(self, default_ms):
# TODO: LMS-11220: Document why draft send count is 5
# TODO: LMS-11220: Document why draft find count is [19, 6]
# TODO: LMS-11220: Document why split find count is [2, 2]
@ddt.data(('draft', [19, 6], 0), ('split', [2, 2], 0))
# @ddt.data(('draft', [19, 6], 0), ('split', [2, 2], 0))
@ddt.data(('draft', [18, 5], 0), ('split', [16, 6], 0)) # FIXME, replace w/ above when bulk reenabled
@ddt.unpack
def test_path_to_location(self, default_ms, num_finds, num_sends):
"""
Expand Down
3 changes: 2 additions & 1 deletion lms/djangoapps/courseware/model_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ def get_child_descriptors(descriptor, depth, descriptor_filter):

return descriptors

with modulestore().bulk_operations(descriptor.location.course_key):
# FIXME
with modulestore().bulk_temp_noop_operations(descriptor.location.course_key):
descriptors = get_child_descriptors(descriptor, depth, descriptor_filter)

return FieldDataCache(descriptors, course_id, user, select_for_update)
Expand Down
4 changes: 2 additions & 2 deletions lms/djangoapps/courseware/tests/test_module_render.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ def setup_modulestore(self, default_ms, num_finds, num_sends):

# TODO: LMS-11220: Document why split find count is 9
# TODO: LMS-11220: Document why mongo find count is 4
@ddt.data((ModuleStoreEnum.Type.mongo, 4, 0), (ModuleStoreEnum.Type.split, 9, 0))
@ddt.data((ModuleStoreEnum.Type.mongo, 3, 0), (ModuleStoreEnum.Type.split, 21, 0))
@ddt.unpack
def test_toc_toy_from_chapter(self, default_ms, num_finds, num_sends):
with self.store.default_store(default_ms):
Expand Down Expand Up @@ -364,7 +364,7 @@ def test_toc_toy_from_chapter(self, default_ms, num_finds, num_sends):

# TODO: LMS-11220: Document why split find count is 9
# TODO: LMS-11220: Document why mongo find count is 4
@ddt.data((ModuleStoreEnum.Type.mongo, 4, 0), (ModuleStoreEnum.Type.split, 9, 0))
@ddt.data((ModuleStoreEnum.Type.mongo, 3, 0), (ModuleStoreEnum.Type.split, 21, 0))
@ddt.unpack
def test_toc_toy_from_section(self, default_ms, num_finds, num_sends):
with self.store.default_store(default_ms):
Expand Down