FAILURE MAP
← Case archive

FA-951 / Reliability / Open access

Allow a half-open circuit probe: A probe runs before the open-state cooldown elapses · case 01

The circuit probe operation is admitted even though a probe runs before the open-state cooldown elapses.

Verified by executionVariant 1 · 9 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The admission path omits the open delay invariant while validating the other operation preconditions.

VERIFIED REPAIR

Require r['open_delay'][0]-r['open_delay'][1] >= r['open_delay'][2] together with every other stated precondition before accepting the operation.

Unsuccessful approach: Adding the open delay check repairs the reported defect, but replacing the adjacent probe exclusive check loses that independent invariant.

Case contract

Return a Boolean admission decision for allow a half-open circuit probe. The record r must satisfy all of: r['open_delay'][0]-r['open_delay'][1] >= r['open_delay'][2]; r['probe_exclusive'] == 0; r['circuit_generation'][0] == r['circuit_generation'][1]; r['endpoint_health'][0] in r['endpoint_health'][1]; r['caller_deadline'][0] < r['caller_deadline'][1]. Extra tracing fields are ignored; validation does not mutate the record.

Why this case matters

A deterministic local contract for reliability. Each negative fixture violates exactly one invariant. No transport timing, persistence, cryptographic verification, or full protocol implementation is claimed.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(r):
    return (r['probe_exclusive'] == 0) and (r['circuit_generation'][0] == r['circuit_generation'][1]) and (r['endpoint_health'][0] in r['endpoint_health'][1]) and (r['caller_deadline'][0] < r['caller_deadline'][1])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
r = {'open_delay': [10, 5, 5], 'probe_exclusive': 0, 'circuit_generation': [4, 4], 'endpoint_health': ['a', ['a', 'b']], 'caller_deadline': [10, 11]}
check('valid operation', solve(r), True)
check('A probe runs before the open-state cooldown elapses', solve(dict(r, **{'open_delay': [9, 5, 5]})), False)
check('Concurrent requests occupy the single half-open probe slot', solve(dict(r, **{'probe_exclusive': 1})), False)
check('A stale timer probes a newly opened circuit generation', solve(dict(r, **{'circuit_generation': [3, 4]})), False)
check('A probe targets an endpoint removed from service discovery', solve(dict(r, **{'endpoint_health': ['c', ['a', 'b']]})), False)
check('A probe is started for an already expired caller', solve(dict(r, **{'caller_deadline': [11, 11]})), False)
check('unrelated tracing metadata', solve(dict(r, trace='run-'+str(N))), True)
check('repeat validation is pure', solve(r), True)
invalid = {'open_delay': [9, 5, 5], 'probe_exclusive': 1, 'circuit_generation': [3, 4], 'endpoint_health': ['c', ['a', 'b']], 'caller_deadline': [11, 11]}
keys = list(invalid)
pair = {keys[N % len(keys)]: invalid[keys[N % len(keys)]], keys[(N+1) % len(keys)]: invalid[keys[(N+1) % len(keys)]]}
check('two independent violations in variant', solve(dict(r, **pair)), False)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
valid operationTrueTruePassed
A probe runs before the open-state cooldown elapsesTrueFalseFailed
Concurrent requests occupy the single half-open probe slotFalseFalsePassed
A stale timer probes a newly opened circuit generationFalseFalsePassed
A probe targets an endpoint removed from service discoveryFalseFalsePassed
A probe is started for an already expired callerFalseFalsePassed
unrelated tracing metadataTrueTruePassed
repeat validation is pureTrueTruePassed
two independent violations in variantFalseFalsePassed

SHA-256 / 94022545e652aa1dea763d951cd2351b31c20f7316f2659dcaa0158ebbb89bb0

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(r):
    return (r['open_delay'][0]-r['open_delay'][1] >= r['open_delay'][2]) and (r['circuit_generation'][0] == r['circuit_generation'][1]) and (r['endpoint_health'][0] in r['endpoint_health'][1]) and (r['caller_deadline'][0] < r['caller_deadline'][1])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
r = {'open_delay': [10, 5, 5], 'probe_exclusive': 0, 'circuit_generation': [4, 4], 'endpoint_health': ['a', ['a', 'b']], 'caller_deadline': [10, 11]}
check('valid operation', solve(r), True)
check('A probe runs before the open-state cooldown elapses', solve(dict(r, **{'open_delay': [9, 5, 5]})), False)
check('Concurrent requests occupy the single half-open probe slot', solve(dict(r, **{'probe_exclusive': 1})), False)
check('A stale timer probes a newly opened circuit generation', solve(dict(r, **{'circuit_generation': [3, 4]})), False)
check('A probe targets an endpoint removed from service discovery', solve(dict(r, **{'endpoint_health': ['c', ['a', 'b']]})), False)
check('A probe is started for an already expired caller', solve(dict(r, **{'caller_deadline': [11, 11]})), False)
check('unrelated tracing metadata', solve(dict(r, trace='run-'+str(N))), True)
check('repeat validation is pure', solve(r), True)
invalid = {'open_delay': [9, 5, 5], 'probe_exclusive': 1, 'circuit_generation': [3, 4], 'endpoint_health': ['c', ['a', 'b']], 'caller_deadline': [11, 11]}
keys = list(invalid)
pair = {keys[N % len(keys)]: invalid[keys[N % len(keys)]], keys[(N+1) % len(keys)]: invalid[keys[(N+1) % len(keys)]]}
check('two independent violations in variant', solve(dict(r, **pair)), False)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
valid operationTrueTruePassed
A probe runs before the open-state cooldown elapsesFalseFalsePassed
Concurrent requests occupy the single half-open probe slotTrueFalseFailed
A stale timer probes a newly opened circuit generationFalseFalsePassed
A probe targets an endpoint removed from service discoveryFalseFalsePassed
A probe is started for an already expired callerFalseFalsePassed
unrelated tracing metadataTrueTruePassed
repeat validation is pureTrueTruePassed
two independent violations in variantFalseFalsePassed

SHA-256 / d09f4821eb5a07023c43379d36a25e71e67e096f1bc2fb38003869e355de0173

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(r):
    return (r['open_delay'][0]-r['open_delay'][1] >= r['open_delay'][2]) and (r['probe_exclusive'] == 0) and (r['circuit_generation'][0] == r['circuit_generation'][1]) and (r['endpoint_health'][0] in r['endpoint_health'][1]) and (r['caller_deadline'][0] < r['caller_deadline'][1])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
r = {'open_delay': [10, 5, 5], 'probe_exclusive': 0, 'circuit_generation': [4, 4], 'endpoint_health': ['a', ['a', 'b']], 'caller_deadline': [10, 11]}
check('valid operation', solve(r), True)
check('A probe runs before the open-state cooldown elapses', solve(dict(r, **{'open_delay': [9, 5, 5]})), False)
check('Concurrent requests occupy the single half-open probe slot', solve(dict(r, **{'probe_exclusive': 1})), False)
check('A stale timer probes a newly opened circuit generation', solve(dict(r, **{'circuit_generation': [3, 4]})), False)
check('A probe targets an endpoint removed from service discovery', solve(dict(r, **{'endpoint_health': ['c', ['a', 'b']]})), False)
check('A probe is started for an already expired caller', solve(dict(r, **{'caller_deadline': [11, 11]})), False)
check('unrelated tracing metadata', solve(dict(r, trace='run-'+str(N))), True)
check('repeat validation is pure', solve(r), True)
invalid = {'open_delay': [9, 5, 5], 'probe_exclusive': 1, 'circuit_generation': [3, 4], 'endpoint_health': ['c', ['a', 'b']], 'caller_deadline': [11, 11]}
keys = list(invalid)
pair = {keys[N % len(keys)]: invalid[keys[N % len(keys)]], keys[(N+1) % len(keys)]: invalid[keys[(N+1) % len(keys)]]}
check('two independent violations in variant', solve(dict(r, **pair)), False)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
valid operationTrueTruePassed
A probe runs before the open-state cooldown elapsesFalseFalsePassed
Concurrent requests occupy the single half-open probe slotFalseFalsePassed
A stale timer probes a newly opened circuit generationFalseFalsePassed
A probe targets an endpoint removed from service discoveryFalseFalsePassed
A probe is started for an already expired callerFalseFalsePassed
unrelated tracing metadataTrueTruePassed
repeat validation is pureTrueTruePassed
two independent violations in variantFalseFalsePassed

SHA-256 / 936c8cdc018d6114263a15014556cf16f82fe1578f421c8579bf25e91c34ca87

Verification & scope

This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:36:57.235145+00:00.

Case digest / 648367291dd38eeec9db319f933e530444ccae623cd33be0f90bb7c62d3ec1d1