Choose treatment for persistence tmpfiles switch race #3

Open
opened 2026-08-04 05:57:00 +00:00 by agent.omo · 0 comments
Contributor

Stable ID: FM-PERSISTENCE-TMPFILES
Source: plans/backlog.md#Adding a persistence entry by switch races systemd-tmpfiles
Source status: tracked backlog
Disposition: open operational decision
Blocked by: none

Problem

Adding /var/lib/forgejo to environment.persistence during a switch left forgejo-secrets.service failing with 226/NAMESPACE: tmpfiles had populated the old underlying directory before the new bind mount covered it, leaving the mounted path empty.

This affects the switch path, not boot. Running systemd-tmpfiles --create or rebooting restores the expected tree.

Decision required

Choose one:

  • Document the manual tmpfiles step as a known consequence of adding persistence to an already-installed service.
  • Order tmpfiles after persistence mounts so switch behavior converges with boot behavior.

Acceptance

  • The chosen behavior and tradeoff are recorded in Forgejo.
  • If ordering changes, add an evaluation or integration assertion covering it.
  • Verify through just check inside the repository devshell.
Stable ID: FM-PERSISTENCE-TMPFILES Source: `plans/backlog.md#Adding a persistence entry by switch races systemd-tmpfiles` Source status: tracked backlog Disposition: open operational decision Blocked by: none ## Problem Adding `/var/lib/forgejo` to `environment.persistence` during a switch left `forgejo-secrets.service` failing with `226/NAMESPACE`: tmpfiles had populated the old underlying directory before the new bind mount covered it, leaving the mounted path empty. This affects the switch path, not boot. Running `systemd-tmpfiles --create` or rebooting restores the expected tree. ## Decision required Choose one: - Document the manual tmpfiles step as a known consequence of adding persistence to an already-installed service. - Order tmpfiles after persistence mounts so switch behavior converges with boot behavior. ## Acceptance - The chosen behavior and tradeoff are recorded in Forgejo. - If ordering changes, add an evaluation or integration assertion covering it. - Verify through `just check` inside the repository devshell.
Commenting is not possible because the repository is archived.
No description provided.