From 4c462918e8bbf1e0a9b18fdba88e985e9d5a22a4 Mon Sep 17 00:00:00 2001 From: Tim McCormack Date: Thu, 8 May 2025 16:55:57 -0400 Subject: [PATCH] fix: Pass limit overrides context to codejail execution in all places (#36685) Some of the calls to `safe_exec` were missing the `limit_overrides_context` parameter. This normally conveys the course key to codejail so that we can give some courses different resource limits, but it's also valuable for diagnosing codejail issues in logs and other telemetry. I wasn't able to test all of these paths manually, but the utility function `get_course_id_from_capa_block` will swallow errors, so the situation should be no worse if the `LoncapaResponse.capa_block` field has something unexpected. --- xmodule/capa/responsetypes.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xmodule/capa/responsetypes.py b/xmodule/capa/responsetypes.py index 73378e7c0a..6155fe926e 100644 --- a/xmodule/capa/responsetypes.py +++ b/xmodule/capa/responsetypes.py @@ -2140,6 +2140,9 @@ class CustomResponse(LoncapaResponse): globals_dict, python_path=self.context['python_path'], extra_files=self.context['extra_files'], + limit_overrides_context=get_course_id_from_capa_block( + self.capa_block + ), slug=self.id, random_seed=self.context['seed'], unsafely=self.capa_system.can_execute_unsafe_code(), @@ -2291,6 +2294,9 @@ class CustomResponse(LoncapaResponse): cache=self.capa_system.cache, python_path=self.context['python_path'], extra_files=self.context['extra_files'], + limit_overrides_context=get_course_id_from_capa_block( + self.capa_block + ), slug=self.id, random_seed=self.context['seed'], unsafely=self.capa_system.can_execute_unsafe_code(), @@ -3274,6 +3280,9 @@ class SchematicResponse(LoncapaResponse): cache=self.capa_system.cache, python_path=self.context['python_path'], extra_files=self.context['extra_files'], + limit_overrides_context=get_course_id_from_capa_block( + self.capa_block + ), slug=self.id, random_seed=self.context['seed'], unsafely=self.capa_system.can_execute_unsafe_code(),