New submission from Enji Cooper <yaneurab...@gmail.com>:
Something I noticed when trying to repro another issue: % python Python 3.8.13 (default, Mar 16 2022, 17:28:59) [GCC 7.5.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import logging.handlers >>> logging.handlers.SysLogHandler(address=("something-completely-bogus-doncha-know", >>> 514)) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.8/logging/handlers.py", line 829, in __init__ ress = socket.getaddrinfo(host, port, 0, socktype) File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -2] Name or service not known >>> Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/lib/python3.8/logging/__init__.py", line 2127, in shutdown h.close() File "/usr/lib/python3.8/logging/handlers.py", line 892, in close self.socket.close() AttributeError: 'SysLogHandler' object has no attribute 'socket' % python3.9 Python 3.9.11 (main, Mar 16 2022, 17:27:06) [GCC 7.5.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import logging.handlers >>> logging.handlers.SysLogHandler(address=("something-completely-bogus-doncha-know", >>> 514)) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.9/logging/handlers.py", line 873, in __init__ ress = socket.getaddrinfo(host, port, 0, socktype) File "/usr/lib/python3.9/socket.py", line 954, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -2] Name or service not known >>> Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/lib/python3.9/logging/__init__.py", line 2142, in shutdown h.close() File "/usr/lib/python3.9/logging/handlers.py", line 936, in close self.socket.close() AttributeError: 'SysLogHandler' object has no attribute 'socket' This is happening because logging.Handler is calling logging._addHandlerRef in logging.Handler.__init__ and _removeHandlerRef at exit via logging.shutdown(..). ---------- components: Library (Lib) messages: 416309 nosy: ngie priority: normal severity: normal status: open title: logging.handlers.SysLogHandler doesn't get cleaned up properly on exit if it throws an exception type: behavior versions: Python 3.8, Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue47158> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com