Issue #15365: Make traceback reporting ignore any errors when printing out
the source line. Such errors can't be reported anyway. This makes error
reporting work, even if the "io" module can't be loaded.
diff --git a/Python/traceback.c b/Python/traceback.c
index c8b3ee1..ce670f3 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -344,7 +344,10 @@
Py_DECREF(line);
if (err != 0)
return err;
- return _Py_DisplaySourceLine(f, filename, lineno, 4);
+ /* ignore errors since we can't report them, can we? */
+ if (_Py_DisplaySourceLine(f, filename, lineno, 4))
+ PyErr_Clear();
+ return err;
}
static int