diff options
| author | Craig Jennings <c@cjennings.net> | 2026-08-19 12:16:46 -0700 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-08-19 12:16:46 -0700 |
| commit | afbf011aa0937b5702b6d8c1bfca0809ed809425 (patch) | |
| tree | 0a0db2f90c53e05761710208312eddb319c49491 /docs/PLAN-per-host-overrides.org | |
| parent | 6faa31c1890e931c92d18a3c42ec57e0fd2503a8 (diff) | |
| download | archsetup-afbf011aa0937b5702b6d8c1bfca0809ed809425.tar.gz archsetup-afbf011aa0937b5702b6d8c1bfca0809ed809425.zip | |
fix(installer): give NTP an IP source so a wrong clock can't kill DNS
The installer wrote both halves of a deadlock. configure_dns pins DNSOverTLS=yes with DNSSEC=yes, and both validate against the wall clock. The chrony step enables chronyd without writing a config, so the machine runs Arch's stock one, whose only source is a pool hostname.
Boot with a wrong clock and DoT validation fails, so nothing resolves. Chrony then can't resolve its pool, so the clock stays wrong. Neither side moves, and recovery takes a second device. Velox hit this on the road and I diagnosed it from a phone.
An address needs no DNS and no certificate, so two IP-addressed sources in a drop-in break the cycle whatever caused the skew. Stock chrony.conf reads no drop-in directory, so it gets a confdir line pointing at one.
post-rebuild-check grows a sixth check for the same property. It reads sources only from files chrony is told to read. A drop-in beside a chrony.conf that never names its directory is one chrony won't open, so counting it would pass the machine while describing a file nothing reads.
The failure taxonomy gains the mode in its DNS layer and a cluster 5 triage line. Its egress-layer clock entry assumed working DNS and offered set-ntp true, which can't recover this. That entry now says so.
Diffstat (limited to 'docs/PLAN-per-host-overrides.org')
0 files changed, 0 insertions, 0 deletions
