How to model transient network/service failures with eventual success (TLA+ fairness equivalent)? #926
Unanswered
GilbertBckr
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I am wondering how to model a situation where the network might fail sometimes but never indefinitely - i.e., failures are transient and eventually succeed with retries.
In TLA+, I could use strong fairness (
SF_vars(Action)) to guarantee eventual transition to a state where the network delivers messages. However, in P, when I use:if ($) send target, event, payload;with retry logic using a Timer, it seems the model checker could legally explore a trace where nondeterminism always chooses false, leading to infinite retries. Even though the probability of this trace is low, with sufficient exploration and a low step count it might appear and violate liveness properties.
My questions:
Context: I’m verifying an outbox pattern with at-least-once delivery guarantees and liveness specs that require eventual completion under the assumption of transient errors.
Beta Was this translation helpful? Give feedback.
All reactions