Make database access in the eventloop raise an exception#71547
Merged
bdraco merged 5 commits intohome-assistant:devfrom May 9, 2022
Merged
Make database access in the eventloop raise an exception#71547bdraco merged 5 commits intohome-assistant:devfrom
bdraco merged 5 commits intohome-assistant:devfrom
Conversation
- In 2022.4 we added a warning that the database executor should be used for database access which revealed places where the database was accessed in the eventloop - If the database is accessed in the default executor, it will continue to report the access, but proceed as normal.
|
Hey there @home-assistant/core, mind taking a look at this pull request as it has been labeled with an integration ( |
This comment was marked as abuse.
This comment was marked as abuse.
Member
Author
|
sqlalchemy 1.4 now has asyncio support but its still maturing. We might switch to it once they release 2.0 but all the existing code would have to change since everything has to be awaited. https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html |
balloob
reviewed
May 9, 2022
balloob
approved these changes
May 9, 2022
bdraco
commented
May 9, 2022
balloob
approved these changes
May 9, 2022
Member
Author
|
codecov failure is not related to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Breaking change
Accessing the database does blocking I/O and needs to be done
in the executor since it causes instability by blocking Home Assistant's
event loop (which means Home Assistant cannot do anything until the
database call finishes)
In 2022.4 we added a warning that the database executor should
be used for database access which revealed places where the
database was accessed in the eventloop
If the database is accessed in the default executor, it will continue
to report the access, but proceed as normal.
Type of change
Additional information
Checklist
black --fast homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all..coveragerc.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: