FAILURE MAP
← Case archive

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.

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

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 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 discoveryTrueFalseFailed
A probe is started for an already expired callerFalseFalsePassed
unrelated tracing metadataTrueTruePassed
repeat validation is pureTrueTruePassed
two independent violations in variantFalseFalsePassed

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 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 callerTrueFalseFailed
unrelated tracing metadataTrueTruePassed
repeat validation is pureTrueTruePassed
two independent violations in variantFalseFalsePassed

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 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.302733+00:00.

Case digest / 40fa0dcbdbe1c0052d11a3bb4bd219ce0058e4c0ffd249dc4e854be1b0105159