FA-966 / Reliability / Open access
Allow a half-open circuit probe: A probe targets an endpoint removed from service discovery · case 01
The circuit probe operation is admitted even though a probe targets an endpoint removed from service discovery.
ROOT CAUSE
The admission path omits the endpoint health invariant while validating the other operation preconditions.
VERIFIED REPAIR
Require r['endpoint_health'][0] in r['endpoint_health'][1] together with every other stated precondition before accepting the operation.
Unsuccessful approach: Adding the endpoint health check repairs the reported defect, but replacing the adjacent caller deadline 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['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['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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| valid operation | True | True | Passed |
| A probe runs before the open-state cooldown elapses | False | False | Passed |
| Concurrent requests occupy the single half-open probe slot | False | False | Passed |
| A stale timer probes a newly opened circuit generation | False | False | Passed |
| A probe targets an endpoint removed from service discovery | True | False | Failed |
| A probe is started for an already expired caller | False | False | Passed |
| unrelated tracing metadata | True | True | Passed |
| repeat validation is pure | True | True | Passed |
| two independent violations in variant | False | False | Passed |
SHA-256 / 2d697af7ba5d8293ce6825c24155f782406a42606decc425088502b01d9cc346
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['probe_exclusive'] == 0) and (r['circuit_generation'][0] == r['circuit_generation'][1]) and (r['endpoint_health'][0] in r['endpoint_health'][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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| valid operation | True | True | Passed |
| A probe runs before the open-state cooldown elapses | False | False | Passed |
| Concurrent requests occupy the single half-open probe slot | False | False | Passed |
| A stale timer probes a newly opened circuit generation | False | False | Passed |
| A probe targets an endpoint removed from service discovery | False | False | Passed |
| A probe is started for an already expired caller | True | False | Failed |
| unrelated tracing metadata | True | True | Passed |
| repeat validation is pure | True | True | Passed |
| two independent violations in variant | False | False | Passed |
SHA-256 / fae7b4e96ed9cd8f4b3f87a48b9f85da76fbbc87cc32c0e94a9880362f586456
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| valid operation | True | True | Passed |
| A probe runs before the open-state cooldown elapses | False | False | Passed |
| Concurrent requests occupy the single half-open probe slot | False | False | Passed |
| A stale timer probes a newly opened circuit generation | False | False | Passed |
| A probe targets an endpoint removed from service discovery | False | False | Passed |
| A probe is started for an already expired caller | False | False | Passed |
| unrelated tracing metadata | True | True | Passed |
| repeat validation is pure | True | True | Passed |
| two independent violations in variant | False | False | Passed |
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.302733+00:00.
Case digest / 40fa0dcbdbe1c0052d11a3bb4bd219ce0058e4c0ffd249dc4e854be1b0105159