diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index 9494c2a02d159..ab83d2aa09ad0 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -321,10 +321,18 @@ def try_to_restart(): # Count remaining threads, ideally there should only be one non-daemonized # thread left (which is us). Nothing we really do with it, but it might be # useful when debugging shutdown/restart issues. - nthreads = sum(thread.isAlive() and not thread.isDaemon() - for thread in threading.enumerate()) - if nthreads > 1: - sys.stderr.write("Found {} non-daemonic threads.\n".format(nthreads)) + try: + nthreads = sum(thread.isAlive() and not thread.isDaemon() + for thread in threading.enumerate()) + if nthreads > 1: + sys.stderr.write( + "Found {} non-daemonic threads.\n".format(nthreads)) + + # Somehow we sometimes seem to trigger an assertion in the python threading + # module. It seems we find threads that have no associated OS level thread + # which are not marked as stopped at the python level. + except AssertionError: + sys.stderr.write("Failed to count non-daemonic threads.\n") # Send terminate signal to all processes in our process group which # should be any children that have not themselves changed the process diff --git a/homeassistant/const.py b/homeassistant/const.py index 068b933707bfd..2550c417b63bc 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -1,7 +1,7 @@ # coding: utf-8 """Constants used by Home Assistant components.""" -__version__ = "0.20.0" +__version__ = "0.20.1" REQUIRED_PYTHON_VER = (3, 4) PLATFORM_FORMAT = '{}.{}'