Students can enter some classes but not others after Maple upgrade (Manual course certificate generation seems to cause python stack overflow / LMS core dump?)

I’ve upgraded my Tutor Lilac instance to Maple. After doing this, when I log in with a normal student account rather than admin, when I go to view the course outline in some classes, it succeeds, and in others it just says “There was an error loading this course.”

The below is an example of what I see before the crash

lms_1                        | 2022-01-05 18:24:34,882 INFO 7 [lms.djangoapps.certificates.signals] [user 7] [ip 1.2.3.4] signals.py:80 - Attempt will be made to generate a course certificate for 7 : course-v1:MySite2+FAILINGCLASS1+v0 as a passing grade was received.
lms_1                        | 2022-01-05 18:24:34,886 INFO 7 [lms.djangoapps.certificates.generation_handler] [user 7] [ip 1.2.3.4] generation_handler.py:44 - Attempt will be made to generate course certificate for user 7: course-v1:MySite2+FAILINGCLASS1+v0
lms_1                        | 2022-01-05 18:24:35,108 INFO 20 [tracking] [user 7] [ip 1.2.3.4] logger.py:41 - {"name": "edx.course.grade.now_passed", "context": {"user_id": 7, "path": "/api/course_home/outline/course-v1:MySite2+FAILINGCLASS1+v0", "course_id": "course-v1:MySite2+FAILINGCLASS1+v0", "org_id": "MySite2", "enterprise_uuid": ""}, "username": "StudentAccount", "session": "2a067b2843a4bbfc54f878eb2acc2439", "ip": "1.2.3.4", "agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0", "host": "beta.my.domain", "referer": "https://apps.beta.my.domain/", "accept_language": "en-US,en;q=0.5", "event": {"user_id": "7", "course_id": "course-v1:MySite2+FAILINGCLASS1+v0", "event_transaction_id": "None", "event_transaction_type": "None"}, "time": "2022-01-05T18:24:35.107962+00:00", "event_type": "edx.course.grade.now_passed", "event_source": "server", "page": null}
lms_1                        | 2022-01-05 18:24:35,111 INFO 20 [lms.djangoapps.certificates.signals] [user 7] [ip 1.2.3.4] signals.py:80 - Attempt will be made to generate a course certificate for 7 : course-v1:MySite2+FAILINGCLASS1+v0 as a passing grade was received.
lms_1                        | 2022-01-05 18:24:35,114 INFO 20 [lms.djangoapps.certificates.generation_handler] [user 7] [ip 1.2.3.4] generation_handler.py:44 - Attempt will be made to generate course certificate for user 7: course-v1:MySite2+FAILINGCLASS1+v0
lms_1                        | 2022-01-05 18:24:35,202 INFO 7 [tracking] [user 7] [ip 1.2.3.4] logger.py:41 - {"name": "edx.course.grade.now_passed", "context": {"user_id": 7, "path": "/api/course_home/outline/course-v1:MySite2+FAILINGCLASS1+v0", "course_id": "course-v1:MySite2+FAILINGCLASS1+v0", "org_id": "MySite2", "enterprise_uuid": ""}, "username": "StudentAccount", "session": "2a067b2843a4bbfc54f878eb2acc2439", "ip": "1.2.3.4", "agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0", "host": "beta.my.domain", "referer": "https://apps.beta.my.domain/", "accept_language": "en-US,en;q=0.5", "event": {"user_id": "7", "course_id": "course-v1:MySite2+FAILINGCLASS1+v0", "event_transaction_id": "None", "event_transaction_type": "None"}, "time": "2022-01-05T18:24:35.202116+00:00", "event_type": "edx.course.grade.now_passed", "event_source": "server", "page": null}
lms_1                        | 2022-01-05 18:24:35,206 INFO 7 [lms.djangoapps.certificates.signals] [user 7] [ip 1.2.3.4] signals.py:80 - Attempt will be made to generate a course certificate for 7 : course-v1:MySite2+FAILINGCLASS1+v0 as a passing grade was received.
lms_1                        | 2022-01-05 18:24:35,210 INFO 7 [lms.djangoapps.certificates.generation_handler] [user 7] [ip 1.2.3.4] generation_handler.py:44 - Attempt will be made to generate course certificate for user 7: course-v1:MySite2+FAILINGCLASS1+v0
lms_1                        | Fatal Python error: Cannot recover from stack overflow.
lms_1                        | Python runtime state: initialized
lms_1                        | 
lms_1                        | Thread 0x00007f94df7fe700 (most recent call first):
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/pymongo/periodic_executor.py", line 131 in _run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 870 in run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 932 in _bootstrap_inner
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 890 in _bootstrap
lms_1                        | 
lms_1                        | Thread 0x00007f94dffff700 (most recent call first):
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/pymongo/periodic_executor.py", line 131 in _run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 870 in run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 932 in _bootstrap_inner
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 890 in _bootstrap
lms_1                        | 
lms_1                        | Thread 0x00007f94ecd33700 (most recent call first):
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/pymongo/periodic_executor.py", line 131 in _run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 870 in run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 932 in _bootstrap_inner
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 890 in _bootstrap
lms_1                        | 
lms_1                        | Thread 0x00007f94ed534700 (most recent call first):
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/pymongo/periodic_executor.py", line 131 in _run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 870 in run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 932 in _bootstrap_inner
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 890 in _bootstrap
lms_1                        | 
lms_1                        | Thread 0x00007f95048fa700 (most recent call first):
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/pymongo/periodic_executor.py", line 131 in _run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 870 in run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 932 in _bootstrap_inner
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 890 in _bootstrap
lms_1                        | 
lms_1                        | Thread 0x00007f950d283700 (most recent call first):
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/pymongo/periodic_executor.py", line 131 in _run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 870 in run
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 932 in _bootstrap_inner
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/threading.py", line 890 in _bootstrap
lms_1                        | 
lms_1                        | Current thread 0x00007f9515844780 (most recent call first):
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 476 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 493 in __init__
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/traceback.py", line 103 in print_exception
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 626 in formatException
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 676 in format
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 929 in format
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 1085 in emit
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 954 in handle
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 1661 in callHandlers
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 1599 in handle
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 1589 in _log
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 1458 in warning
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/caching_descriptor_system.py", line 243 in xblock_from_json
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/caching_descriptor_system.py", line 121 in _load_item
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py", line 770 in <listcomp>
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py", line 770 in _load_items
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py", line 1086 in _get_structure
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py", line 1096 in get_course
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/split_mongo/split_draft.py", line 61 in get_course
lms_1                        |   File "/opt/pyenv/versions/3.8.12/lib/python3.8/contextlib.py", line 75 in inner
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/mixed.py", line 404 in get_course
lms_1                        |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/mixed.py", line 82 in inner
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_data.py", line 75 in course
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade.py", line 273 in update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 181 in _update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 54 in read
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 378 in _get_course_grade
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 71 in _generate_regular_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 45 in generate_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/signals.py", line 82 in listen_for_passing_grade
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181 in <listcomp>
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180 in send
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 205 in _update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 54 in read
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 378 in _get_course_grade
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 71 in _generate_regular_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 45 in generate_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/signals.py", line 82 in listen_for_passing_grade
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181 in <listcomp>
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180 in send
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 205 in _update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 54 in read
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 378 in _get_course_grade
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 71 in _generate_regular_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 45 in generate_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/signals.py", line 82 in listen_for_passing_grade
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181 in <listcomp>
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180 in send
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 205 in _update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 54 in read
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 378 in _get_course_grade
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 71 in _generate_regular_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 45 in generate_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/signals.py", line 82 in listen_for_passing_grade
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181 in <listcomp>
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180 in send
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 205 in _update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 54 in read
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 378 in _get_course_grade
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 71 in _generate_regular_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 45 in generate_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/signals.py", line 82 in listen_for_passing_grade
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181 in <listcomp>
lms_1                        |   File "/openedx/venv/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180 in send
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 205 in _update
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/grades/course_grade_factory.py", line 54 in read
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 378 in _get_course_grade
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 71 in _generate_regular_certificate_task
lms_1                        |   File "/openedx/edx-platform/./lms/djangoapps/certificates/generation_handler.py", line 45 in generate_certificate_task
lms_1                        |   ...
lms_1                        | 2022-01-05 18:24:35,430 INFO 20 [tracking] [user 7] [ip 1.2.3.4] logger.py:41 - {"name": "edx.course.grade.now_passed", "context": {"user_id": 7, "path": "/api/course_home/outline/course-v1:MySite2+FAILINGCLASS1+v0", "course_id": "course-v1:MySite2+FAILINGCLASS1+v0", "org_id": "MySite2", "enterprise_uuid": ""}, "username": "StudentAccount", "session": "2a067b2843a4bbfc54f878eb2acc2439", "ip": "1.2.3.4", "agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0", "host": "beta.my.domain", "referer": "https://apps.beta.my.domain/", "accept_language": "en-US,en;q=0.5", "event": {"user_id": "7", "course_id": "course-v1:MySite2+FAILINGCLASS1+v0", "event_transaction_id": "None", "event_transaction_type": "None"}, "time": "2022-01-05T18:24:35.429570+00:00", "event_type": "edx.course.grade.now_passed", "event_source": "server", "page": null}
lms_1                        | 2022-01-05 18:24:35,433 INFO 20 [lms.djangoapps.certificates.signals] [user 7] [ip 1.2.3.4] signals.py:80 - Attempt will be made to generate a course certificate for 7 : course-v1:MySite2+FAILINGCLASS1+v0 as a passing grade was received.
lms_1                        | 2022-01-05 18:24:35,436 INFO 20 [lms.djangoapps.certificates.generation_handler] [user 7] [ip 1.2.3.4] generation_handler.py:44 - Attempt will be made to generate course certificate for user 7: course-v1:MySite2+FAILINGCLASS1+v0
lms_1                        | Aborted (core dumped)
lms_1                        | [uwsgi-static] added mapping for /static => /openedx/staticfiles/
lms_1                        | [uwsgi-static] added mapping for /media => /openedx/media/
lms_1                        | *** Starting uWSGI 2.0.20 (64bit) on [Wed Jan  5 18:24:36 2022] ***
lms_1                        | compiled with version: 9.3.0 on 05 January 2022 15:32:47
lms_1                        | os: Linux-5.4.0-1029-aws #30-Ubuntu SMP Tue Oct 20 10:06:38 UTC 2020
lms_1                        | nodename: 673db10c2119
lms_1                        | machine: x86_64
lms_1                        | clock source: unix
lms_1                        | detected number of CPU cores: 2
lms_1                        | current working directory: /openedx/edx-platform
lms_1                        | detected binary path: /openedx/venv/bin/uwsgi
lms_1                        | !!! no internal routing support, rebuild with pcre support !!!
lms_1                        | *** WARNING: you are running uWSGI without its master process manager ***
lms_1                        | your memory page size is 4096 bytes
lms_1                        | detected max file descriptor number: 1048576
lms_1                        | building mime-types dictionary from file /etc/mime.types...567 entry found
lms_1                        | lock engine: pthread robust mutexes
lms_1                        | thunder lock: enabled
lms_1                        | uWSGI http bound on 0.0.0.0:8000 fd 4
lms_1                        | spawned uWSGI http 1 (pid: 8)
lms_1                        | uwsgi socket 0 bound to TCP address 127.0.0.1:40997 (port auto-assigned) fd 3
lms_1                        | Python version: 3.8.12 (default, Jan  5 2022, 15:24:06)  [GCC 9.3.0]
lms_1                        | Python main interpreter initialized at 0x55f6521ac790
lms_1                        | python threads support enabled
lms_1                        | your server socket listen backlog is limited to 100 connections
lms_1                        | your mercy for graceful operations on workers is 60 seconds
lms_1                        | mapped 154032 bytes (150 KB) for 2 cores
lms_1                        | *** Operational MODE: preforking ***
lms_1                        | WSGI app 0 (mountpoint='') ready in 8 seconds on interpreter 0x55f6521ac790 pid: 7 (default app)
lms_1                        | spawned uWSGI worker 1 (pid: 7, cores: 1)
lms_1                        | spawned uWSGI worker 2 (pid: 20, cores: 1)

Note that I see 2 examples of that “Fatal Python error: Cannot recover from stack overflow.”, one at 18:24 and one at 18:32, both of which correspond to times I went to a failing class.

The weird thing is that I have one other class which is failing the same way, however it doesn’t show up the same in the logs. For the second class the best I can find in terms of error messages in the logs are the following when I navigate to the “/learning/course/course-v1:MySite+FAILINGCLASS2+v1/home” URL as a student:

caddy_1                      | {"level":"info","ts":1641410538.500707,"logger":"http.log.access.log2","msg":"handled request","request":{"remote_addr":"1.2.3.4:64675","proto":"HTTP/2.0","method":"GET","host":"apps.my.domain.com","uri":"/learning/course/course-v1:MySite+FAILINGCLASS2+v1/home","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"apps.my.domain.com"}},"duration":0.001262353,"size":0,"status":304}
caddy_1                      | {"level":"info","ts":1641410538.9565,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"1.2.3.4:64676","proto":"HTTP/2.0","method":"GET","host":"my.domain.com","uri":"/theming/asset/images/logo.png","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"my.domain.com"}},"duration":0.075113858,"size":0,"status":302}
caddy_1                      | {"level":"info","ts":1641410542.2575014,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"1.2.3.4:64676","proto":"HTTP/2.0","method":"GET","host":"my.domain.com","uri":"/api/course_home/outline/course-v1:MySite+FAILINGCLASS2+v1","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"my.domain.com"}},"duration":3.330393244,"size":83122,"status":200}
caddy_1                      | {"level":"error","ts":1641410542.3171914,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"1.2.3.4:64676","proto":"HTTP/2.0","method":"GET","host":"my.domain.com","uri":"/api/course_home/course_metadata/course-v1:MySite+FAILINGCLASS2+v1?browser_timezone=America%2FLos_Angeles","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"my.domain.com"}},"duration":3.390618591,"size":23,"status":404}
caddy_1                      | {"level":"info","ts":1641410693.8970263,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"1.2.3.4:64676","proto":"HTTP/2.0","method":"GET","host":"my.domain.com","uri":"/theming/asset/images/logo.png","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"my.domain.com"}},"duration":0.054990335,"size":0,"status":302}
caddy_1                      | {"level":"info","ts":1641410697.167103,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"1.2.3.4:64676","proto":"HTTP/2.0","method":"GET","host":"my.domain.com","uri":"/api/course_home/outline/course-v1:MySite+FAILINGCLASS2+v1","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"my.domain.com"}},"duration":3.277968348,"size":83122,"status":200}
caddy_1                      | {"level":"error","ts":1641410697.218365,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"1.2.3.4:64676","proto":"HTTP/2.0","method":"GET","host":"my.domain.com","uri":"/api/course_home/course_metadata/course-v1:MySite+FAILINGCLASS2+v1?browser_timezone=America%2FLos_Angeles","tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","proto_mutual":true,"server_name":"my.domain.com"}},"duration":3.329301489,"size":23,"status":404}

My TLS certificate is just a Tutor auto-generated one from Let’s Encrypt, and it says it expires on April 4th 2022, so I don’t think it’s that (I’m also not getting any browser errors), despite the level error log line saying something about TLS…

cc @jhynes because of this thread about a Maple course certificate change

@oedx Could you please try enabling persistent grades via adjango admin?
path to change form /admin/grades/persistentgradesenabledflag/add/
Please check both checkboxes.

I’ll try that next time I attempt an upgrade, but I’ve found too many broken things for now so I had to revert back to Lilac even on my non-production system, to avoid causing inconvenience for the instructors