CluPilotCloud/app/Provisioning/Jobs
nexxo edf24257b5 fix(hosts): reserve the DNS name under the lock, never reuse it, clean it up
Codex was right that my never-reuse claim did not hold:

- The lock was released with only a candidate in hand, so two concurrent
  onboardings in one datacenter could pick the same name and overwrite each
  other's record. The name is now persisted on the host while still locked.
- The number was derived from the hosts that happen to exist, so removing the
  highest one handed that number straight back out — a cached name would then
  resolve to a different machine. The counter is stored per datacenter, floored
  by what is actually in use so a wiped settings store cannot reissue live names.
- PurgeHost deleted the row that carried the record id, leaving the machine's
  management address published with nothing left to clean it up.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 23:51:25 +02:00
..
AdvanceRunJob.php fix(engine): durable queueing for long provisioning steps 2026-07-25 10:36:49 +02:00
ApplyVpnPeer.php fix(vpn): serialize hub reads against hub mutations 2026-07-25 21:53:13 +02:00
CollectInstanceTraffic.php fix(traffic): a sample without counters is not zero traffic 2026-07-25 23:44:02 +02:00
PurgeHost.php fix(hosts): reserve the DNS name under the lock, never reuse it, clean it up 2026-07-25 23:51:25 +02:00
RemoveWireguardPeer.php fix(vpn): lock every hub mutation; resolve duplicate keys inside the lock 2026-07-25 21:55:57 +02:00
SyncVpnPeers.php fix(vpn): classify adopted peers as system, not staff; drop duplicate env line 2026-07-25 22:34:18 +02:00