Strengthen JobProtocol model after independent review.
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.
This commit is contained in:
parent
1206c0a5ac
commit
7d490194c3
1 changed files with 342 additions and 124 deletions
|
|
@ -1,10 +1,12 @@
|
|||
SPECIFICATION SafetySpec
|
||||
|
||||
CHECK_DEADLOCK FALSE
|
||||
CHECK_DEADLOCK TRUE
|
||||
|
||||
\* Combined contention: both local and deployment-wide limits constrain work.
|
||||
\* Shrunk from 3 jobs to 2 so TLC finishes in minutes; Local=1 and Global=2
|
||||
\* still force both limiters to bind under two live workers.
|
||||
CONSTANTS
|
||||
Jobs = {j1, j2, j3}
|
||||
Jobs = {j1, j2}
|
||||
Workers = {w1, w2}
|
||||
InitialWorkers = {w1, w2}
|
||||
NoJob = NoJob
|
||||
|
|
@ -16,19 +18,21 @@ CONSTANTS
|
|||
GlobalLimit = 2
|
||||
FaultsEnabled = FALSE
|
||||
FaultServices = {}
|
||||
MaxCoordLosses = 0
|
||||
MaxPartitions = 0
|
||||
|
||||
INVARIANTS
|
||||
TypeOK
|
||||
StateConsistency
|
||||
AtMostOneAuthoritativeAttempt
|
||||
FencingTokensUnique
|
||||
AllocatedTokensUsed
|
||||
LiveProgressAligned
|
||||
AtMostOneLiveLeasePerJob
|
||||
AuthorityWellFormed
|
||||
CommittedResultConsistent
|
||||
CancellationSafety
|
||||
PermitSafety
|
||||
QueueRecoverable
|
||||
AttemptIsolation
|
||||
ResumeValidity
|
||||
ZombieIsolation
|
||||
StagingOwnership
|
||||
|
||||
PROPERTIES
|
||||
TerminalStateIsImmutable
|
||||
|
|
|
|||
Loading…
Reference in a new issue