PeteRager / lennoxs30

Home Assistant Lennox S40 / S30 / E30 / M30 integration
MIT License
88 stars 13 forks source link

Detected blocking call to load_default_certs #341

Open stu247 opened 1 month ago

stu247 commented 1 month ago

Describe the bug Upgraded HA to 2024.9.1 from 2024.8.* and saw the following message in log file:

2024-09-07 17:24:31.706 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x7fd42cfd0cd0>, <Purpose.SERVER_AUTH: _ASN1Object(nid=129, shortname='serverAuth', longname='TLS Web Server Authentication', oid='1.3.6.1.5.5.7.3.1')>) inside the event loop by custom integration 'lennoxs30' at custom_components/lennoxs30/__init__.py, line 430: self.api: s30api_async = s30api_async( (offender: /usr/local/lib/python3.12/ssl.py, line 713: context.load_default_certs(purpose)), please create a bug report at https://github.com/PeteRager/lennoxs30/issues
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_default_certs
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in <module>
    sys.exit(main())
  File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
    exit_code = runner.run(runtime_conf)
  File "/usr/src/homeassistant/homeassistant/runner.py", line 189, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete
    self.run_forever()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever
    self._run_once()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1990, in _run_once
    handle._run()
  File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/src/homeassistant/homeassistant/setup.py", line 165, in async_setup_component
    result = await _async_setup_component(hass, domain, config)
  File "/usr/src/homeassistant/homeassistant/setup.py", line 461, in _async_setup_component
    await asyncio.gather(
  File "/usr/src/homeassistant/homeassistant/setup.py", line 463, in <genexpr>
    create_eager_task(
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 45, in create_eager_task
    return Task(coro, loop=loop, name=name, eager_start=True)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 752, in async_setup_locked
    await self.async_setup(hass, integration=integration)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/config/custom_components/lennoxs30/__init__.py", line 319, in async_setup_entry
    manager = Manager(
  File "/config/custom_components/lennoxs30/__init__.py", line 430, in __init__
    self.api: s30api_async = s30api_async(

To Reproduce Steps to reproduce the behavior: Upgrade HA to 2024.9.1

Expected behavior No warning message.

Screenshots/Logs See above.

Version

Integration Configuration

Additional context NA

GaryOkie commented 4 weeks ago

I'm getting this blocking call warning from not only this S30 integration but also the core Amcrest integration and the custom LG ThinQ integration. Reports are claiming this is not just a warning but it is causing a performance issue. I can't confirm there is any degradation.

Pete - might want to take a look at: (https://github.com/ollo69/ha-smartthinq-sensors/pull/791)

PeteRager commented 4 weeks ago

This happens once at startup. As soon as we get back from vacation I'll be looking at it.