Issue #9501: Improved shutdown handling to deal with module attributes correctly.
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 4da07f1..5cb2866 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -711,7 +711,8 @@
     # This function can be called during module teardown, when globals are
     # set to None. If _acquireLock is None, assume this is the case and do
     # nothing.
-    if _acquireLock is not None:
+    if (_acquireLock is not None and _handlerList is not None and
+        _releaseLock is not None):
         _acquireLock()
         try:
             if wr in _handlerList: