]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-76785: Print the Traceback from Interpreter.run() (gh-110322)
authorEric Snow <ericsnowcurrently@gmail.com>
Wed, 4 Oct 2023 17:57:03 +0000 (11:57 -0600)
committerGitHub <noreply@github.com>
Wed, 4 Oct 2023 17:57:03 +0000 (11:57 -0600)
This is a temporary solution.  The full fix may involve serializing the traceback in some form.

(FYI, I merged this yesterday and the reverted it due to buildbot failures.  See gh-110248.)

Modules/_xxsubinterpretersmodule.c

index 700282efb8c6197bda51d0f78625ecdc98ebe50f..bca16ac8a62eca1dbccfcec802575db45affbf12 100644 (file)
@@ -450,7 +450,13 @@ error:
                 "RunFailedError: script raised an uncaught exception (%s)",
                 failure);
     }
-    Py_XDECREF(excval);
+    if (excval != NULL) {
+        // XXX Instead, store the rendered traceback on sharedexc,
+        // attach it to the exception when applied,
+        // and teach PyErr_Display() to print it.
+        PyErr_Display(NULL, excval, NULL);
+        Py_DECREF(excval);
+    }
     if (errcode != ERR_ALREADY_RUNNING) {
         _PyInterpreterState_SetNotRunningMain(interp);
     }