Tighten activation recovery and API contracts

This commit is contained in:
ms2k 2026-07-14 19:04:00 +09:00
commit 3062bf3d75

View file

@ -163,7 +163,6 @@ RejectPrecondition(op, c, f, w) ==
ExpireReservation(c) ==
/\ durableState[c] = Authorized
/\ reservation[c] # NoWorker
/\ lease[c] = NoWorker
/\ reservation' = [reservation EXCEPT ![c] = NoWorker]
/\ UNCHANGED <<durableState, attemptFence, attemptWorker, lease,
activationStage, durableLock, operationRequest,
@ -185,6 +184,7 @@ ExpireLease(c) ==
AcquireRecoveryLock(c) ==
/\ durableState[c] = Authorized
/\ reservation[c] = NoWorker
/\ durableLock[c] = NoOwner
/\ durableLock' = [durableLock EXCEPT ![c] = Recovery]
/\ UNCHANGED <<durableState, attemptFence, attemptWorker, reservation,
@ -291,6 +291,10 @@ ReapedCoordinationIsClean ==
/\ reservation[c] = NoWorker
/\ lease[c] = NoWorker
RecoveryOwnsInactiveClaim ==
\A c \in Claims :
durableLock[c] = Recovery => reservation[c] = NoWorker
ActivationAppliesAtMostOnceAction ==
\A c \in Claims :
activationEffectCount[c] = 1 => activationEffectCount'[c] = 1