Petar Petrov ead4999206 Recover a disk mount whose device was pulled while mounted
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.
2026-09-08 09:38:42 +03:00
2021-03-16 15:47:40 +01:00
2025-10-08 10:44:49 +02:00
2020-07-29 14:45:37 +02:00
2024-09-30 18:42:08 +02:00

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:

  1. Pull requests are merged to the main branch.
  2. A new build is pushed to the dev stage.
  3. Releases are published.
  4. A new build is pushed to the beta stage.
  5. The stable.json file is updated.
  6. The build that was pushed to beta will now be pushed to stable.

Home Assistant - A project from the Open Home Foundation

Languages
Python 96.3%
JavaScript 3.6%