mirror of
https://github.com/home-assistant/supervisor.git
synced 2026-10-06 09:28:04 +01:00
local-disk-mounts
A disk detached while its mount was established leaves the kernel holding a mount over a device instance that no longer exists. That dead mount covers the autofs trigger, and since the unit mounts a link outside /dev there is no device unit whose return could re-fire anything, so a reattached disk - which arrives as a new instance - never got mounted again without a manual reload. Measured on a loopback device: after detaching while mounted, reattaching and accessing the path still served the stale mount; stopping just the .mount restored the trigger and the next access mounted the disk fresh. The presence check now discards such a session instead of only reporting the mount inactive. Stopping the .mount leaves the .automount armed, so the path stays covered rather than becoming a writable directory, and the periodic reconcile heals it within its interval while an explicit reload heals it at once. A failure to discard is logged and leaves the mount reported inactive, since a health check must not raise. Creating a mount is now serialized. Whether a disk is already claimed is decided against the mounts already configured, so two creates could both pass that check before either was recorded and mount one disk twice under different names. A restored mount is saved again once activation succeeds. The restore writes the configuration before activating, at which point a disk mount's resolved filesystem has deliberately been cleared so that activation cannot skip the mountable-device guard; without the second write that cleared value is what survived, and every later start needed UDisks2 again.
Home Assistant Supervisor
First private cloud solution for home automation
Home Assistant (former Hass.io) is a container-based system for managing your Home Assistant Core installation and related applications. The system is controlled via Home Assistant which communicates with the Supervisor. The Supervisor provides an API to manage the installation. This includes changing network settings or installing and updating software.
Installation
Installation instructions can be found at https://home-assistant.io/getting-started.
Development
For small changes and bugfixes you can just follow this, but for significant changes open a RFC first. Development instructions can be found here.
Release
Releases are done in 3 stages (channels) with this structure:
- Pull requests are merged to the
mainbranch. - A new build is pushed to the
devstage. - Releases are published.
- A new build is pushed to the
betastage. - The
stable.jsonfile is updated. - The build that was pushed to
betawill now be pushed tostable.
Languages
Python
96.3%
JavaScript
3.6%
