FA-10301 / Observability / Open access
Structured log emission policy: Incomplete structured logs are exported · case 01
Incomplete structured logs are exported.
ROOT CAUSE
The implementation substitutes True for set(required) <= set(event), so incomplete structured logs are exported.
VERIFIED REPAIR
Require field presence while preserving false-valued fields.
Unsuccessful approach: The attempted repair substitutes all(event.get(k) for k in required). Fixture 8 still yields False instead of True.
Case contract
Emit a log only when severity reaches the threshold, logger is enabled, sampling selected it, it is not suppressed, and all required fields exist. False-valued fields count as present.
Why this case matters
An offline model of structured log emission policy, suitable for testing build and release tooling without external services.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(event, threshold, enabled, sampled, suppressed, required):
return event['level'] >= threshold and enabled and sampled and not suppressed and True
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'level': 2, 'message': 'x'}, 2, True, True, False, ['message']), True)
check('fixture 2', solve({'level': 1, 'message': 'x'}, 2, True, True, False, ['message']), False)
check('fixture 3', solve({'level': 3, 'message': 'x'}, 2, True, True, False, ['message']), True)
check('fixture 4', solve({'level': 2, 'message': 'x'}, 2, False, True, False, ['message']), False)
check('fixture 5', solve({'level': 2, 'message': 'x'}, 2, True, False, False, ['message']), False)
check('fixture 6', solve({'level': 2, 'message': 'x'}, 2, True, True, True, ['message']), False)
check('fixture 7', solve({'level': 2}, 2, True, True, False, ['message']), False)
check('fixture 8', solve({'level': 2, 'message': False}, 2, True, True, False, ['message']), True)
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 |
|---|---|---|---|
| fixture 1 | True | True | Passed |
| fixture 2 | False | False | Passed |
| fixture 3 | True | True | Passed |
| fixture 4 | False | False | Passed |
| fixture 5 | False | False | Passed |
| fixture 6 | False | False | Passed |
| fixture 7 | True | False | Failed |
| fixture 8 | True | True | Passed |
SHA-256 / edf75a832193457f242e6a1b477cdae348d1fe318a6575a6bcb92bed1ca6e487
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(event, threshold, enabled, sampled, suppressed, required):
return event['level'] >= threshold and enabled and sampled and not suppressed and all(event.get(k) for k in required)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'level': 2, 'message': 'x'}, 2, True, True, False, ['message']), True)
check('fixture 2', solve({'level': 1, 'message': 'x'}, 2, True, True, False, ['message']), False)
check('fixture 3', solve({'level': 3, 'message': 'x'}, 2, True, True, False, ['message']), True)
check('fixture 4', solve({'level': 2, 'message': 'x'}, 2, False, True, False, ['message']), False)
check('fixture 5', solve({'level': 2, 'message': 'x'}, 2, True, False, False, ['message']), False)
check('fixture 6', solve({'level': 2, 'message': 'x'}, 2, True, True, True, ['message']), False)
check('fixture 7', solve({'level': 2}, 2, True, True, False, ['message']), False)
check('fixture 8', solve({'level': 2, 'message': False}, 2, True, True, False, ['message']), True)
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 |
|---|---|---|---|
| fixture 1 | True | True | Passed |
| fixture 2 | False | False | Passed |
| fixture 3 | True | True | Passed |
| fixture 4 | False | False | Passed |
| fixture 5 | False | False | Passed |
| fixture 6 | False | False | Passed |
| fixture 7 | False | False | Passed |
| fixture 8 | False | True | Failed |
SHA-256 / a0d13ef07f8168fb73dc3d1804aef25987cf737ec1b5b6526b265ba7f739d1c8
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(event, threshold, enabled, sampled, suppressed, required):
return event['level'] >= threshold and enabled and sampled and not suppressed and set(required) <= set(event)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve({'level': 2, 'message': 'x'}, 2, True, True, False, ['message']), True)
check('fixture 2', solve({'level': 1, 'message': 'x'}, 2, True, True, False, ['message']), False)
check('fixture 3', solve({'level': 3, 'message': 'x'}, 2, True, True, False, ['message']), True)
check('fixture 4', solve({'level': 2, 'message': 'x'}, 2, False, True, False, ['message']), False)
check('fixture 5', solve({'level': 2, 'message': 'x'}, 2, True, False, False, ['message']), False)
check('fixture 6', solve({'level': 2, 'message': 'x'}, 2, True, True, True, ['message']), False)
check('fixture 7', solve({'level': 2}, 2, True, True, False, ['message']), False)
check('fixture 8', solve({'level': 2, 'message': False}, 2, True, True, False, ['message']), True)
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 |
|---|---|---|---|
| fixture 1 | True | True | Passed |
| fixture 2 | False | False | Passed |
| fixture 3 | True | True | Passed |
| fixture 4 | False | False | Passed |
| fixture 5 | False | False | Passed |
| fixture 6 | False | False | Passed |
| fixture 7 | False | False | Passed |
| fixture 8 | True | True | Passed |
SHA-256 / f4bbb946152e17c26a856a860be6e984a70a96eaa3cc9b26f45ef7745c0f0652
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:38:37.812098+00:00.
Case digest / fd7674e426804f7935ea54e8ba216c90bc5bef84ddf3f7abeaab05e53fd3a4cc