Skip to content

Instantly share code, notes, and snippets.

mysql> select * from grades_visibleblocksmodel;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------+
| blocks_json
Aug 23 20:32:05 ip-10-2-11-126 [service_variant=lms][courseware.model_data][env:prod-edx-edxapp] ERROR [ip-10-2-11-126 17804] [model_data.py:426] - Saving user state failed for kiril-me
Traceback (most recent call last):
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/model_data.py", line 423, in set_many pending_updates
File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/user_state_client.py", line 226, in set_many student_module.save(force_update=True)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/db/models/base.py", line 734, in save force_update=force_update, update_fields=update_fields)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/db/models/base.py", line 762, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/db/models/base.py", line 827, in _save_table forced_update)
File "/edx/app/edxapp/venvs/ed
@efischer19
efischer19 / query.txt
Created September 8, 2016 15:16
Grades queries
<truncated, everything before this is "is the feature flag enabled" and "what's the data we're persisting" queries, nothing unusual>
The get_or_create logic begins here:
QUERY = u'SAVEPOINT "s140540290041600_x457"' - PARAMS = ()
select_related (read: INNER_JOIN) is attempted here, but since the object doesn't exist yet it does us no good:
QUERY = u'SELECT "grades_persistentsubsectiongrade"."created", "grades_persistentsubsectiongrade"."modified", "grades_persistentsubsectiongrade"."id", "grades_persistentsubsectiongrade"."user_id", "grades_persistentsubsectiongrade"."course_id", "grades_persistentsubsectiongrade"."usage_key", "grades_persistentsubsectiongrade"."subtree_edited_timestamp", "grades_persistentsubsectiongrade"."course_version", "grades_persistentsubsectiongrade"."earned_all", "grades_persistentsubsectiongrade"."possible_all", "grades_persistentsubsectiongrade"."earned_graded", "grades_persistentsubsectiongrade"."possible_graded", "grades_persistentsubsectiongrade"."visible_blocks_hash", "grades_
edxapp@precise64:~/edx-platform$ paver test_acceptance -s lms --extra_args="lms/djangoapps/courseware/features/lti.feature" --fasttest
---> pavelib.acceptance_test.test_acceptance
---> pavelib.prereqs.install_prereqs
---> pavelib.prereqs.install_node_prereqs
Node prereqs unchanged, skipping...
---> pavelib.prereqs.install_python_prereqs
---> pavelib.prereqs.uninstall_python_packages
Python uninstalls unchanged, skipping...
Python prereqs unchanged, skipping...
---> pavelib.utils.test.utils.clean_reports_dir
@efischer19
efischer19 / demo.txt
Created February 9, 2017 16:47
How to check on edxapp_worker
To ensure worker process are running:
[efischer19-sandbox] efischer19@efischer19 i-0a87e264bf73f6be1:~$ /edx/bin/supervisorctl
...
edxapp_worker:cms_default_1 RUNNING pid 9300, uptime 6 days, 22:12:52
edxapp_worker:cms_high_1 RUNNING pid 9298, uptime 6 days, 22:12:52
edxapp_worker:cms_low_1 RUNNING pid 9296, uptime 6 days, 22:12:52
edxapp_worker:lms_default_1 RUNNING pid 9299, uptime 6 days, 22:12:52
edxapp_worker:lms_grades_1 RUNNING pid 9302, uptime 6 days, 22:12:52
edxapp_worker:lms_high_1 RUNNING pid 9303, uptime 6 days, 22:12:52
edxapp_worker:lms_high_mem_1 RUNNING pid 9297, uptime 6 days, 22:12:52
@efischer19
efischer19 / devstack_scripts.txt
Created March 22, 2017 19:50
Devstack reinstallation
ericfischer@dhcp-18-189-111-194:~/scripts$ cat readme.txt
First, reset devstack:
. ./reset_devstack.sh
Then, install ora2 and copy some files into devstack:
. ./setup_devstack.sh
Then, install the newly cloned src repos locally:
vagrant ssh
sudo su edxapp
./ora2_reinstall.sh
exit
# Instantiate a and b identically
(Pdb) course_data_a = CourseData(self.user, course_key=self.factory_course.id)
(Pdb) course_data_b = CourseData(self.user, course_key=self.factory_course.id)
# Access a.loction, then b.course, then b.location. Just accesses!
# Also note that the location properties are represented slightly differently (SlashSeparatedCourseKey vs CourseLocator), but they compare as equal
(Pdb) course_data_a.location
BlockUsageLocator(SlashSeparatedCourseKey('org.1', 'course_1', 'Run_1', None, None), 'course', 'Run_1')
(Pdb) course_data_b.course
CourseDescriptorWithMixins(CombinedSystem(None, CachingDescriptorSystem(<xmodule.modulestore.mongo.draft.DraftModuleStore object at 0x7effd58f68d0>, u'org.1/course_1/Run_1', [u'i4x://org.1/course_1/course/Run_1'], <class 'xmodule.raw_module.RawDescriptor'>, [])), KvsFieldData(MongoKeyValueStore({u'wiki_slug': u'course_1'}, None, [], {u'tabs': [{u'course_staff_only': False, u'type': u'course_info', u'name': u'Home'}, {u'course_staff_only': False, u'type
@efischer19
efischer19 / gist:f4597d228df6243e8b504ef6d240b1f1
Created April 7, 2017 19:29
grades work for invisible courses
(Pdb) from courseware.access import has_access
(Pdb) from lms.djangoapps.grades.new.course_data import CourseData
(Pdb) has_access(self.request.user, 'load', self.course)
AccessResponse(True, None, None, None)
(Pdb) self.course.visible_to_staff_only = True
(Pdb) has_access(self.request.user, 'load', self.course)
AccessResponse(False, 'not_visible_to_user', 'Course is not visible to this user', u'You do not have access to this course')
@efischer19
efischer19 / type_size_diff.out
Created July 26, 2017 14:21
Comparison of large dump against small, size deltas of given types
dict, 521597608 to 71847848, diff: -449749760, 86.2254260951%
unicode, 204969204 to 8713716, diff: -196255488, 95.7487681906%
ObjectId, 22841784 to 217000, diff: -22624784, 99.0499866385%
str, 47456524 to 27408451, diff: -20048073, 42.2451357794%
BlockKey, 19437480 to 184320, diff: -19253160, 99.0517289278%
list, 25739104 to 9034048, diff: -16705056, 64.9014666556%
BlockData, 8778560 to 82688, diff: -8695872, 99.0580687493%
EditInfo, 8778560 to 82688, diff: -8695872, 99.0580687493%
datetime.datetime, 7403424 to 425184, diff: -6978240, 94.2569276054%
int, 8518392 to 5261424, diff: -3256968, 38.23454004%
@efischer19
efischer19 / LMS diff
Created July 26, 2017 20:15
Memory dump debugging
dict, 144002424 to 64600208, diff: -79402216, 55.1394995962%
unicode, 31903600 to 6837592, diff: -25066008, 78.5679609825%
TransformerDataMap, 6756400 to 0, diff: -6756400, 100.0%
str, 31529181 to 25779986, diff: -5749195, 18.2345205859%
list, 14326176 to 8664072, diff: -5662104, 39.5227868204%
TransformerData, 2657408 to 0, diff: -2657408, 100.0%
set, 3438584 to 1098936, diff: -2339648, 68.0410308429%
tuple, 6837360 to 4552008, diff: -2285352, 33.4244796237%
ReturnDict, 1525776 to 0, diff: -1525776, 100.0%
function, 7609440 to 6513720, diff: -1095720, 14.3994827477%