]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-151229: Finalize JIT tracer in test eval-frame stub (gh-151609)
authorDonghee Na <donghee.na@python.org>
Thu, 18 Jun 2026 11:58:12 +0000 (20:58 +0900)
committerGitHub <noreply@github.com>
Thu, 18 Jun 2026 11:58:12 +0000 (20:58 +0900)
Modules/_testinternalcapi/interpreter.c

index 99dcd18393fb870fca4f023ce433130e164939b1..4afa028cd87527cb946b1c17f9395aecb40aacc3 100644 (file)
@@ -18,8 +18,13 @@ int Test_EvalFrame_Resumes, Test_EvalFrame_Loads;
 static int
 stop_tracing_and_jit(PyThreadState *tstate, _PyInterpreterFrame *frame)
 {
-    (void)(tstate);
     (void)(frame);
+    // Don't actually JIT-compile in this test eval-frame, but we still must
+    // finalize the tracer so the thread-global is_tracing flag is reset.
+    // Otherwise a trace started inside this duplicated interpreter loop
+    // (reachable under low JIT thresholds, e.g. PYTHON_JIT_STRESS=1) would
+    // leave is_tracing stuck true and permanently disable the JIT.
+    _PyJit_FinalizeTracing(tstate, 0);
     return 0;
 }
 #endif