{"abstract":"A selector cache leaks one consumer selector result into another consumer.","category":"Client state","checks":6,"contract":"Selector memoization is scoped by consumer, committed version and selector identity. Cached null and false results are hits. A miss installs only the exact composite key.","evaluation_group":"s3-client-state-store-selector-memo","failed_approach":"The partial repair still violates at least one explicit regression oracle.","family":"s3-client-state-store-selector-memo","id":"FA-24766","implementations":{"attempt":{"sha256":"62551fc6b4ed22f3dd74f3003090e516f9f6618ab4ce3bddbe141bacb330aabb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cache, consumer, version, selector, result):\n    key=(consumer,version,selector)\n    old=next((v for (c,n,s),v in cache.items() if c==consumer and n==version),result)\n    return old,list({**cache,key:old}.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('different selector', solve({('a',1,'left'):2},'a',1,'right',3), (3, list({('a', 1, 'left'): 2, ('a', 1, 'right'): 3}.items())))\ncheck('different consumer', solve({('a',1,'left'):2},'b',1,'left',N), (N, list({('a', 1, 'left'): 2, ('b', 1, 'left'): N}.items())))\ncheck('same cache key', solve({('a',1,'left'):0},'a',1,'left',9), (0, list({('a', 1, 'left'): 0}.items())))\ncheck('new version', solve({('a',1,'left'):2},'a',2,'left',3), (3, list({('a', 1, 'left'): 2, ('a', 2, 'left'): 3}.items())))\ncheck('empty cache', solve({},'a',N,'left',False), (False, list({('a', N, 'left'): False}.items())))\ncheck('null cached', solve({('a',1,'left'):None},'a',1,'left',3), (None, list({('a', 1, 'left'): None}.items())))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"a4f07b1e2a0933175011360fcab8f876513aa5ae7bf06b1ed6914ce2de1565cb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cache, consumer, version, selector, result):\n    key=(consumer,version,selector)\n    old=next((v for (c,n,s),v in cache.items() if n==version),result)\n    return old,list({**cache,key:old}.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('different selector', solve({('a',1,'left'):2},'a',1,'right',3), (3, list({('a', 1, 'left'): 2, ('a', 1, 'right'): 3}.items())))\ncheck('different consumer', solve({('a',1,'left'):2},'b',1,'left',N), (N, list({('a', 1, 'left'): 2, ('b', 1, 'left'): N}.items())))\ncheck('same cache key', solve({('a',1,'left'):0},'a',1,'left',9), (0, list({('a', 1, 'left'): 0}.items())))\ncheck('new version', solve({('a',1,'left'):2},'a',2,'left',3), (3, list({('a', 1, 'left'): 2, ('a', 2, 'left'): 3}.items())))\ncheck('empty cache', solve({},'a',N,'left',False), (False, list({('a', N, 'left'): False}.items())))\ncheck('null cached', solve({('a',1,'left'):None},'a',1,'left',3), (None, list({('a', 1, 'left'): None}.items())))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"03ecb6ad26447dafd187f348d49dd6d9ffab767fef21735f133770adea0c7eab","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cache, consumer, version, selector, result):\n    key=(consumer,version,selector)\n    return cache.get(key,result),list({**cache,key:cache.get(key,result)}.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('different selector', solve({('a',1,'left'):2},'a',1,'right',3), (3, list({('a', 1, 'left'): 2, ('a', 1, 'right'): 3}.items())))\ncheck('different consumer', solve({('a',1,'left'):2},'b',1,'left',N), (N, list({('a', 1, 'left'): 2, ('b', 1, 'left'): N}.items())))\ncheck('same cache key', solve({('a',1,'left'):0},'a',1,'left',9), (0, list({('a', 1, 'left'): 0}.items())))\ncheck('new version', solve({('a',1,'left'):2},'a',2,'left',3), (3, list({('a', 1, 'left'): 2, ('a', 2, 'left'): 3}.items())))\ncheck('empty cache', solve({},'a',N,'left',False), (False, list({('a', N, 'left'): False}.items())))\ncheck('null cached', solve({('a',1,'left'):None},'a',1,'left',3), (None, list({('a', 1, 'left'): None}.items())))\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"This models the stated application policy only; no browser or framework conformance is claimed. 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-client-state-store-selector-memo","generated_at":"2026-09-29T14:41:00.575493+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded offline client-state transition with explicit lifecycle inputs.","repair":"Selector memoization is scoped by consumer, committed version and selector identity. Cached null and false results are hits. A miss installs only the exact composite key.","root_cause":"The faulty implementation violates Selector memoization is scoped by consumer, committed version and selector identity. Cached null and false results are hits. A miss installs only the exact composite key.","sha256":"bb670617be4bd6c554de3731b54fc19d4235b27550ab7ad08574e5947fa2ed68","title":"A selector cache leaks one consumer selector result into another consumer · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.992,"exit_code":1,"observations":[{"actual":[2,[[["a",1,"left"],2],[["a",1,"right"],2]]],"check":"different selector","expected":[3,[[["a",1,"left"],2],[["a",1,"right"],3]]],"passed":false},{"actual":[1,[[["a",1,"left"],2],[["b",1,"left"],1]]],"check":"different consumer","expected":[1,[[["a",1,"left"],2],[["b",1,"left"],1]]],"passed":true},{"actual":[0,[[["a",1,"left"],0]]],"check":"same cache key","expected":[0,[[["a",1,"left"],0]]],"passed":true},{"actual":[3,[[["a",1,"left"],2],[["a",2,"left"],3]]],"check":"new version","expected":[3,[[["a",1,"left"],2],[["a",2,"left"],3]]],"passed":true},{"actual":[false,[[["a",1,"left"],false]]],"check":"empty cache","expected":[false,[[["a",1,"left"],false]]],"passed":true},{"actual":[null,[[["a",1,"left"],null]]],"check":"null cached","expected":[null,[[["a",1,"left"],null]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"different selector\", \"actual\": [2, [[[\"a\", 1, \"left\"], 2], [[\"a\", 1, \"right\"], 2]]], \"expected\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 1, \"right\"], 3]]], \"passed\": false}, {\"check\": \"different consumer\", \"actual\": [1, [[[\"a\", 1, \"left\"], 2], [[\"b\", 1, \"left\"], 1]]], \"expected\": [1, [[[\"a\", 1, \"left\"], 2], [[\"b\", 1, \"left\"], 1]]], \"passed\": true}, {\"check\": \"same cache key\", \"actual\": [0, [[[\"a\", 1, \"left\"], 0]]], \"expected\": [0, [[[\"a\", 1, \"left\"], 0]]], \"passed\": true}, {\"check\": \"new version\", \"actual\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 2, \"left\"], 3]]], \"expected\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 2, \"left\"], 3]]], \"passed\": true}, {\"check\": \"empty cache\", \"actual\": [false, [[[\"a\", 1, \"left\"], false]]], \"expected\": [false, [[[\"a\", 1, \"left\"], false]]], \"passed\": true}, {\"check\": \"null cached\", \"actual\": [null, [[[\"a\", 1, \"left\"], null]]], \"expected\": [null, [[[\"a\", 1, \"left\"], null]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.567,"exit_code":1,"observations":[{"actual":[2,[[["a",1,"left"],2],[["a",1,"right"],2]]],"check":"different selector","expected":[3,[[["a",1,"left"],2],[["a",1,"right"],3]]],"passed":false},{"actual":[2,[[["a",1,"left"],2],[["b",1,"left"],2]]],"check":"different consumer","expected":[1,[[["a",1,"left"],2],[["b",1,"left"],1]]],"passed":false},{"actual":[0,[[["a",1,"left"],0]]],"check":"same cache key","expected":[0,[[["a",1,"left"],0]]],"passed":true},{"actual":[3,[[["a",1,"left"],2],[["a",2,"left"],3]]],"check":"new version","expected":[3,[[["a",1,"left"],2],[["a",2,"left"],3]]],"passed":true},{"actual":[false,[[["a",1,"left"],false]]],"check":"empty cache","expected":[false,[[["a",1,"left"],false]]],"passed":true},{"actual":[null,[[["a",1,"left"],null]]],"check":"null cached","expected":[null,[[["a",1,"left"],null]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"different selector\", \"actual\": [2, [[[\"a\", 1, \"left\"], 2], [[\"a\", 1, \"right\"], 2]]], \"expected\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 1, \"right\"], 3]]], \"passed\": false}, {\"check\": \"different consumer\", \"actual\": [2, [[[\"a\", 1, \"left\"], 2], [[\"b\", 1, \"left\"], 2]]], \"expected\": [1, [[[\"a\", 1, \"left\"], 2], [[\"b\", 1, \"left\"], 1]]], \"passed\": false}, {\"check\": \"same cache key\", \"actual\": [0, [[[\"a\", 1, \"left\"], 0]]], \"expected\": [0, [[[\"a\", 1, \"left\"], 0]]], \"passed\": true}, {\"check\": \"new version\", \"actual\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 2, \"left\"], 3]]], \"expected\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 2, \"left\"], 3]]], \"passed\": true}, {\"check\": \"empty cache\", \"actual\": [false, [[[\"a\", 1, \"left\"], false]]], \"expected\": [false, [[[\"a\", 1, \"left\"], false]]], \"passed\": true}, {\"check\": \"null cached\", \"actual\": [null, [[[\"a\", 1, \"left\"], null]]], \"expected\": [null, [[[\"a\", 1, \"left\"], null]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.132,"exit_code":0,"observations":[{"actual":[3,[[["a",1,"left"],2],[["a",1,"right"],3]]],"check":"different selector","expected":[3,[[["a",1,"left"],2],[["a",1,"right"],3]]],"passed":true},{"actual":[1,[[["a",1,"left"],2],[["b",1,"left"],1]]],"check":"different consumer","expected":[1,[[["a",1,"left"],2],[["b",1,"left"],1]]],"passed":true},{"actual":[0,[[["a",1,"left"],0]]],"check":"same cache key","expected":[0,[[["a",1,"left"],0]]],"passed":true},{"actual":[3,[[["a",1,"left"],2],[["a",2,"left"],3]]],"check":"new version","expected":[3,[[["a",1,"left"],2],[["a",2,"left"],3]]],"passed":true},{"actual":[false,[[["a",1,"left"],false]]],"check":"empty cache","expected":[false,[[["a",1,"left"],false]]],"passed":true},{"actual":[null,[[["a",1,"left"],null]]],"check":"null cached","expected":[null,[[["a",1,"left"],null]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"different selector\", \"actual\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 1, \"right\"], 3]]], \"expected\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 1, \"right\"], 3]]], \"passed\": true}, {\"check\": \"different consumer\", \"actual\": [1, [[[\"a\", 1, \"left\"], 2], [[\"b\", 1, \"left\"], 1]]], \"expected\": [1, [[[\"a\", 1, \"left\"], 2], [[\"b\", 1, \"left\"], 1]]], \"passed\": true}, {\"check\": \"same cache key\", \"actual\": [0, [[[\"a\", 1, \"left\"], 0]]], \"expected\": [0, [[[\"a\", 1, \"left\"], 0]]], \"passed\": true}, {\"check\": \"new version\", \"actual\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 2, \"left\"], 3]]], \"expected\": [3, [[[\"a\", 1, \"left\"], 2], [[\"a\", 2, \"left\"], 3]]], \"passed\": true}, {\"check\": \"empty cache\", \"actual\": [false, [[[\"a\", 1, \"left\"], false]]], \"expected\": [false, [[[\"a\", 1, \"left\"], false]]], \"passed\": true}, {\"check\": \"null cached\", \"actual\": [null, [[[\"a\", 1, \"left\"], null]]], \"expected\": [null, [[[\"a\", 1, \"left\"], null]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}