CluPilotCloud/app/Provisioning/Jobs
nexxo 8eb9d7ad30 fix(vpn): serialize hub reads against hub mutations
A sync could read the hub snapshot just before ApplyVpnPeer removed a peer and
purged its tombstone, then adopt what it had seen as a fresh enabled access —
restoring a revoked one. Both jobs now hold Cache::lock('wireguard:hub') around
read-decide-mutate, so a reconciliation can never straddle a removal. Retry
removals are dispatched after the lock is released, because the sync queue
driver runs them inline and they take the same lock.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 21:53:13 +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
PurgeHost.php fix(engine): record wg peer only after verified handshake; async host purge 2026-07-25 11:06:13 +02:00
RemoveWireguardPeer.php fix(engine): long SSH command timeout; wg peer removal on privileged worker 2026-07-25 11:01:02 +02:00
SyncVpnPeers.php fix(vpn): serialize hub reads against hub mutations 2026-07-25 21:53:13 +02:00