Replace tautological invariants with non-trivial ones, allow multi-shot coordination loss and re-partition, fix reap/progress lifecycle, enable deadlock checking via Done, and add stress and multi-shot TLC configs.
38 lines
802 B
INI
38 lines
802 B
INI
SPECIFICATION SafetySpec
|
|
|
|
CHECK_DEADLOCK TRUE
|
|
|
|
\* Multi-shot coordination wipe and re-partition (safety only; liveness is Remora.cfg).
|
|
CONSTANTS
|
|
Jobs = {j1}
|
|
Workers = {w1, w2}
|
|
InitialWorkers = {w1}
|
|
NoJob = NoJob
|
|
NoWorker = NoWorker
|
|
MaxAttempts = 2
|
|
MaxProgress = 1
|
|
LeaseLimit = 1
|
|
LocalLimit = 1
|
|
GlobalLimit = 1
|
|
FaultsEnabled = TRUE
|
|
FaultServices = {"Coordination"}
|
|
MaxCoordLosses = 2
|
|
MaxPartitions = 2
|
|
|
|
INVARIANTS
|
|
TypeOK
|
|
StateConsistency
|
|
AllocatedTokensUsed
|
|
LiveProgressAligned
|
|
AtMostOneLiveLeasePerJob
|
|
AuthorityWellFormed
|
|
CommittedResultConsistent
|
|
CancellationSafety
|
|
PermitSafety
|
|
ResumeValidity
|
|
StagingOwnership
|
|
|
|
PROPERTIES
|
|
TerminalStateIsImmutable
|
|
FencingTokensMonotonic
|
|
CommitIsFencedCAS
|