From: Vinay Sajip Date: Mon, 22 Mar 2010 12:33:08 +0000 (+0000) Subject: Issue #8200: logging: Handle errors when multiprocessing is not fully loaded when... X-Git-Tag: v2.7b1~260 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3017a7bbbf2046b93ac89fcbabadaf0a528e5ae1;p=thirdparty%2FPython%2Fcpython.git Issue #8200: logging: Handle errors when multiprocessing is not fully loaded when logging occurs. --- diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index b1810d68e537..088c1fc9ca0e 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -287,10 +287,18 @@ class LogRecord(object): self.threadName = None if not logMultiprocessing: self.processName = None - elif 'multiprocessing' not in sys.modules: - self.processName = 'MainProcess' else: - self.processName = sys.modules['multiprocessing'].current_process().name + self.processName = 'MainProcess' + mp = sys.modules.get('multiprocessing') + if mp is not None: + # Errors may occur if multiprocessing has not finished loading + # yet - e.g. if a custom import hook causes third-party code + # to run when multiprocessing calls import. See issue 8200 + # for an example + try: + self.processName = mp.current_process().name + except StandardError: + pass if logProcesses and hasattr(os, 'getpid'): self.process = os.getpid() else: diff --git a/Misc/NEWS b/Misc/NEWS index dd61f4f64c2a..12db4af60fb3 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -29,6 +29,9 @@ Core and Builtins Library ------- +- Issue #8200: logging: Handle errors when multiprocessing is not + fully loaded when logging occurs. + - Issue #3890: Fix recv() and recv_into() on non-blocking SSL sockets. - Issue #8179: Fix macpath.realpath() on a non-existing path.