Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blocking call stops Lovelace and makes HA crash #1504

Open
thedmmatt opened this issue Jun 9, 2024 · 2 comments
Open

Blocking call stops Lovelace and makes HA crash #1504

thedmmatt opened this issue Jun 9, 2024 · 2 comments
Labels

Comments

@thedmmatt
Copy link

Describe the bug
When trying to change anything in the Integration config page (for example, a simples edition such as disabling adaptative dashboard), HA starts logging the same message over and over again until it becomes unresponsible and/or crashes, requiring the container to be restarted.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Integrations'
  2. Select the UI Lovelace Minimalist integration
  3. Click on 'Configure'
  4. Make any changes and try to apply them
  5. See the error in the logs

Expected behavior
Any changes would be saved by the integration or errors would be printed in the popup header without crashing HA.

Screenshots
n/a

Additional context
Running HA as a Docker container over WSL2.

Related Logs (can be found in the browser-console (F12))

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 190, in run
    return loop.run_until_complete(setup_and_run_hass(runtime_config))
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete
    self.run_forever()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever
    self._run_once()
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, 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/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
    resp = await request_handler(request)
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 85, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
    return await func(self, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 285, in post
    return await super().post(request, flow_id)
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 70, in wrapper
    return await method(view, request, data, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 368, in async_configure
    result = await self._async_configure(flow_id, user_input)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 414, in _async_configure
    result = await self._async_handle_step(
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 572, in _async_handle_step
    result = await self.async_finish_flow(flow, result.copy())
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2563, in async_finish_flow
    self.hass.config_entries.async_update_entry(entry, options=result["data"])
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2005, in async_update_entry
    self.hass.async_create_task(
  File "/usr/src/homeassistant/homeassistant/core.py", line 806, in async_create_task
    return self.async_create_task_internal(target, name, eager_start)
  File "/usr/src/homeassistant/homeassistant/core.py", line 828, in async_create_task_internal
    task = create_eager_task(target, name=name, loop=self.loop)
  File "/usr/src/homeassistant/homeassistant/util/async_.py", line 37, in create_eager_task
    return Task(coro, loop=loop, name=name, eager_start=True)
  File "/config/custom_components/ui_lovelace_minimalist/__init__.py", line 141, in async_reload_entry
    await async_setup_entry(hass, config_entry)
  File "/config/custom_components/ui_lovelace_minimalist/__init__.py", line 124, in async_setup_entry
    return await async_initialize_integration(hass=hass, config_entry=config_entry)
  File "/config/custom_components/ui_lovelace_minimalist/__init__.py", line 104, in async_initialize_integration
    startup_result = await async_startup()
  File "/config/custom_components/ui_lovelace_minimalist/__init__.py", line 93, in async_startup
    not await ulm.configure_ulm()
  File "/config/custom_components/ui_lovelace_minimalist/base.py", line 480, in configure_ulm
    shutil.copytree(

Yes -- weirdly enough, the error log stops right there with an open parenthesis

Related Card Config
n/a

@wilbiev
Copy link
Contributor

wilbiev commented Jun 12, 2024

I fixed two issues with my limited knowledge of Python and Home Assistant. You can find the modified files init.py and base.py in my GitHub repository https://github.com/wilbiev/UI/tree/main/custom_components/ui_lovelace_minimalist
The solved issues are the hanging (problem in the reload of the integration) and the log messages 'Detected blocking call'

@wilbiev
Copy link
Contributor

wilbiev commented Jul 5, 2024

Fixed hanging issues for (first-time) users not using the GitHub option. Update in https://github.com/wilbiev/UI/blob/main/custom_components/ui_lovelace_minimalist/__init__.py.
PR created.
Other issues were fixed in new available version v1.3.10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants