core icon indicating copy to clipboard operation
core copied to clipboard

Detected blocking call to load_default_certs with args

Open tomlut opened this issue 1 year ago • 7 comments

The problem

The following warning is logged when running HA 2024.9.0b0

Logger: homeassistant.util.loop Source: util/loop.py:136 First occurred: 18:04:44 (7 occurrences) Last logged: 18:05:09

Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x7f27cd437950>, <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 integration 'daikin' at homeassistant/components/daikin/init.py, line 85: device: Appliance = await DaikinFactory( (offender: /usr/local/lib/python3.12/ssl.py, line 713: context.load_default_certs(purpose)), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+daikin%22 For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_default_certs Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 223, in 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 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 "/usr/src/homeassistant/homeassistant/components/daikin/init.py", line 46, in async_setup_entry daikin_api = await daikin_api_setup( File "/usr/src/homeassistant/homeassistant/components/daikin/init.py", line 85, in daikin_api_setup device: Appliance = await DaikinFactory(

What version of Home Assistant Core has the issue?

core-2024.9.0b0

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Daikin

Link to integration documentation on our website

https://www.home-assistant.io/integrations/daikin/

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

tomlut avatar Aug 29 '24 08:08 tomlut

Hey there @fredrike, mind taking a look at this issue as it has been labeled with an integration (daikin) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of daikin can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign daikin Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


daikin documentation daikin source (message by IssueLinks)

home-assistant[bot] avatar Aug 29 '24 08:08 home-assistant[bot]

@joostlek didn't we try to fix this?

fredrike avatar Aug 29 '24 14:08 fredrike

Nope

joostlek avatar Aug 29 '24 14:08 joostlek

Add me to the list getting this error.... :(

PS - Thanks for fixing the PS4 one...

Bob.

OhioSpyderman avatar Sep 24 '24 10:09 OhioSpyderman

@OhioSpyderman do you have a issue number for the ps4 issue so I van take some insperation.

fredrike avatar Sep 24 '24 19:09 fredrike

Detected blocking call to open inside the event loop by integration 'ps4' #118925

Bob.

EDIT: FWIW, the event loop in this/my case (with the new issue) is AMCREST

OhioSpyderman avatar Sep 24 '24 19:09 OhioSpyderman

Detected blocking call to load_default_certs with args

Just got this with the latest core update...

Trying to help...

Bob.

OhioSpyderman avatar Oct 04 '24 23:10 OhioSpyderman

Also experiencing this with the AmCrest integration.

davidmtml avatar Oct 29 '24 18:10 davidmtml

You will need to open a seperate issue for that.

tomlut avatar Oct 29 '24 20:10 tomlut

Has there been any progress with this issue recently @fredrike?

mongotron avatar Dec 13 '24 03:12 mongotron

Detected blocking call to load_default_certs with args. Amcrest.
Still dealing with it.

Full warning message:

Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x7fd7ccc5ec30>, <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 integration 'amcrest' at homeassistant/components/amcrest/init.py, line 207: return await super().async_command(*args, **kwargs) (offender: /usr/local/lib/python3.13/ssl.py, line 722: context.load_default_certs(purpose)), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+amcrest%22 For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_default_certs Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 227, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/main.py", line 213, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.13/asyncio/base_events.py", line 708, in run_until_complete self.run_forever() File "/usr/local/lib/python3.13/asyncio/base_events.py", line 679, in run_forever self._run_once() File "/usr/local/lib/python3.13/asyncio/base_events.py", line 2027, in _run_once handle._run() File "/usr/local/lib/python3.13/asyncio/events.py", line 89, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 166, in _async_component_platform_discovered await self.async_setup_platform(platform, {}, info) File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 311, in async_setup_platform await self._platforms[key].async_setup(platform_config, discovery_info) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 303, in async_setup await self._async_setup_platform(async_create_setup_awaitable) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 363, in async_setup_platform awaitable = create_eager_task(awaitable, loop=hass.loop) 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/components/amcrest/camera.py", line 140, in async_setup_platform async_add_entities([entity], True) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 508, in async_schedule_add_entities task = self.hass.async_create_task_internal( File "/usr/src/homeassistant/homeassistant/core.py", line 841, in async_create_task_internal task = create_eager_task(target, name=name, loop=self.loop) 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/helpers/entity_platform.py", line 657, in async_add_entities await add_func(coros, entities, timeout) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 563, in async_add_and_update_entities tasks = [create_eager_task(coro, loop=self.hass.loop) for coro in coros] 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/helpers/entity_platform.py", line 737, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1318, in async_device_update await self.async_update() File "/usr/src/homeassistant/homeassistant/components/amcrest/camera.py", line 368, in async_update resp = await self._api.async_vendor_information File "/usr/local/lib/python3.13/site-packages/amcrest/system.py", line 162, in async_vendor_information return pretty(await self._async_magic_box("getVendor")) File "/usr/local/lib/python3.13/site-packages/amcrest/http.py", line 511, in _async_magic_box ret = await self.async_command(f"magicBox.cgi?action={action}") File "/usr/src/homeassistant/homeassistant/components/amcrest/init.py", line 207, in async_command return await super().async_command(*args, **kwargs)

OhioSpyderman avatar Dec 22 '24 14:12 OhioSpyderman

Same issue here: Version: core-2024.12.5 Installation type: Home Assistant OS

2024-12-29 12:29:50.621 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x7f791cdeb0>, <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 integration 'daikin' at homeassistant/components/daikin/__init__.py, line 46: device: Appliance = await DaikinFactory( (offender: /usr/local/lib/python3.13/ssl.py, line 722: context.load_default_certs(purpose)), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+daikin%22 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 227, in <module> sys.exit(main()) File "/usr/src/homeassistant/homeassistant/__main__.py", line 213, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.13/asyncio/base_events.py", line 708, in run_until_complete self.run_forever() File "/usr/local/lib/python3.13/asyncio/base_events.py", line 679, in run_forever self._run_once() File "/usr/local/lib/python3.13/asyncio/base_events.py", line 2027, in _run_once handle._run() File "/usr/local/lib/python3.13/asyncio/events.py", line 89, 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 788, in async_setup_locked await self.async_setup(hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 551, in async_setup await self.__async_setup_with_context(hass, integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 640, in __async_setup_with_context result = await component.async_setup_entry(hass, self) File "/usr/src/homeassistant/homeassistant/components/daikin/__init__.py", line 46, in async_setup_entry device: Appliance = await DaikinFactory(

Tiemichael avatar Dec 29 '24 04:12 Tiemichael

I can try to get a fix out for this.

fredrike avatar Jan 01 '25 20:01 fredrike

Just confirming, that I also get this with the Harmony integration (running HA Core 2025.1.2).

2025-01-17 23:26:38.855 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to load_default_certs with args (<ssl.SSLContext object at 0x7ffef7d12690>, <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 integration 'harmony' at homeassistant/components/harmony/data.py, line 118: connected = await self._client.connect() (offender: /usr/local/lib/python3.13/ssl.py, line 722: context.load_default_certs(purpose)), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+harmony%22
For developers, please see https://developers.home-assistant.io/docs/asyncio_blocking_operations/#load_default_certs

Thanks so much for looking at it @fredrike!

redlefloh avatar Jan 17 '25 22:01 redlefloh

That is unrelated to this issue which is specifically about the Daikin integration. You need to open a seperate issue for the harmony remote integration as it says to do at the end of that report.

tomlut avatar Jan 18 '25 01:01 tomlut

Hi team, I just found this thread and have the same issue but running HA core 2024.12.5. Is there a downgrade path that resolves the issue until a fix is available please?

gomesp avatar Jan 21 '25 05:01 gomesp

amcrest/init.py

Again. Not related to this issue which is for the Daikin integration. Delete your post and open a new issue for the Amcrest integration.

tomlut avatar Feb 09 '25 11:02 tomlut

Thanks Fredrike, confirmed as fixed in 2025.4.1.

tomlut avatar Apr 04 '25 23:04 tomlut

Installed 2025.4.1 this morning. The problem still persists.

Bob.

Image

Image

OhioSpyderman avatar Apr 05 '25 12:04 OhioSpyderman

That is not caused by the Daikin integration. It is the Amcrest integration. Completely different issue.

tomlut avatar Apr 05 '25 12:04 tomlut

Anyone having trouble with amcrest, try the Dahua integration instead: https://github.com/rroller/dahua. It supports several additional sensors and controls as well.

genehand avatar Apr 05 '25 17:04 genehand