FAILURE MAP
← Case archive

FA-9481 / Dependency resolution / Open access

Package source selection: Disabled indexes can supply packages · case 01

Disabled indexes can supply packages.

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

ROOT CAUSE

The implementation substitutes True for s['enabled'], so disabled indexes can supply packages.

VERIFIED REPAIR

Filter disabled sources before selection.

Unsuccessful approach: The attempted repair substitutes not s['enabled']. Fixture 2 still yields 'bad' instead of 'first'.

Case contract

Return first declared trusted nonmirror source containing the package, otherwise first trusted mirror containing it. Disabled and untrusted sources never participate.

Why this case matters

An offline model of package source selection, 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(name, sources):
    eligible = [s for s in sources if True]
    eligible = [s for s in eligible if s['trusted']]
    eligible = [s for s in eligible if name in s['packages']]
    primary = [s for s in eligible if not s['mirror']]
    choices = primary or eligible
    return choices[0]['name'] if choices else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('a', []), None)
check('fixture 2', solve('a', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), 'first')
check('fixture 3', solve('a', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), 'mirror')
check('fixture 4', solve('b', []), None)
check('fixture 5', solve('b', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), 'first')
check('fixture 6', solve('b', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), None)
check('fixture 7', solve('missing', []), None)
check('fixture 8', solve('missing', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), None)
check('fixture 9', solve('missing', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), None)
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
fixture 1NoneNonePassed
fixture 2badfirstFailed
fixture 3mirrormirrorPassed
fixture 4NoneNonePassed
fixture 5firstfirstPassed
fixture 6NoneNonePassed
fixture 7NoneNonePassed
fixture 8NoneNonePassed
fixture 9NoneNonePassed

SHA-256 / c71b28686599625f5db39d1f3539598aa53118819dd91116e98197ee88baf8b9

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(name, sources):
    eligible = [s for s in sources if not s['enabled']]
    eligible = [s for s in eligible if s['trusted']]
    eligible = [s for s in eligible if name in s['packages']]
    primary = [s for s in eligible if not s['mirror']]
    choices = primary or eligible
    return choices[0]['name'] if choices else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('a', []), None)
check('fixture 2', solve('a', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), 'first')
check('fixture 3', solve('a', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), 'mirror')
check('fixture 4', solve('b', []), None)
check('fixture 5', solve('b', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), 'first')
check('fixture 6', solve('b', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), None)
check('fixture 7', solve('missing', []), None)
check('fixture 8', solve('missing', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), None)
check('fixture 9', solve('missing', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), None)
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
fixture 1NoneNonePassed
fixture 2badfirstFailed
fixture 3NonemirrorFailed
fixture 4NoneNonePassed
fixture 5NonefirstFailed
fixture 6NoneNonePassed
fixture 7NoneNonePassed
fixture 8NoneNonePassed
fixture 9NoneNonePassed

SHA-256 / 5519c0dfaf0aeb4574218e121fe6396feac81524a313ab9d9e0ed274d39b4ba2

3 / The verified repair

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

N = 1
observations = []
def solve(name, sources):
    eligible = [s for s in sources if s['enabled']]
    eligible = [s for s in eligible if s['trusted']]
    eligible = [s for s in eligible if name in s['packages']]
    primary = [s for s in eligible if not s['mirror']]
    choices = primary or eligible
    return choices[0]['name'] if choices else None
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('a', []), None)
check('fixture 2', solve('a', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), 'first')
check('fixture 3', solve('a', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), 'mirror')
check('fixture 4', solve('b', []), None)
check('fixture 5', solve('b', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), 'first')
check('fixture 6', solve('b', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), None)
check('fixture 7', solve('missing', []), None)
check('fixture 8', solve('missing', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}, {'name': 'bad', 'enabled': False, 'trusted': True, 'packages': ['a'], 'mirror': False}, {'name': 'untrusted', 'enabled': True, 'trusted': False, 'packages': ['a'], 'mirror': False}, {'name': 'first', 'enabled': True, 'trusted': True, 'packages': ['a', 'b'], 'mirror': False}, {'name': 'last', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': False}]), None)
check('fixture 9', solve('missing', [{'name': 'mirror', 'enabled': True, 'trusted': True, 'packages': ['a'], 'mirror': True}]), None)
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
fixture 1NoneNonePassed
fixture 2firstfirstPassed
fixture 3mirrormirrorPassed
fixture 4NoneNonePassed
fixture 5firstfirstPassed
fixture 6NoneNonePassed
fixture 7NoneNonePassed
fixture 8NoneNonePassed
fixture 9NoneNonePassed

SHA-256 / 3171b1b972fd8aef9871431f781cb62fc4e432f44930f71f1656c1c03d52263f

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

Case digest / e52963fb3ff675562be2fcef8dd448fd7f1031c480ce3ac2862abe2770ef928b