Issue #21677: Fixed chaining nonnormalized exceptions in io close() methods.
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index 7494646..d0e92e5 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -549,6 +549,7 @@
         }
         else {
             PyObject *val2;
+            PyErr_NormalizeException(&exc, &val, &tb);
             Py_DECREF(exc);
             Py_XDECREF(tb);
             PyErr_Fetch(&exc, &val2, &tb);