From e553f01e0a1764d9e392c0a6ba7d989e7db1e25d Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 5 Oct 2026 00:07:52 +0000 Subject: [PATCH] recurring_failure_mode: re-scope the native-route row to the package-pattern residue The set-form ':all' invocation's universe_underived refusal is real on every head tried, but the predecessor's diagnosis -- a universe- derivation break entering main in a window -- is withdrawn: at one head, one build, one seed emit, the recursive form derives universe=13 population=13 and the package form derives universe=0. The residue is the silent zero: a package pattern over a namespace prefix cannot match (packages match by exact equality) and the lane reports a derivation failure instead of the typed operand refusal. The predecessor row is deleted; this row carries the correction receipt, the recorded-not-chased qualification refusals, and a next-rung trigger naming the capability. --- ..._prefix_returns_universe_zero_silently.dag | 24 ++++++++++++++++ ...es_universe_underived_on_pristine_main.dag | 28 ------------------- 2 files changed, 24 insertions(+), 28 deletions(-) create mode 100644 dag/gunbc/recurring_failure_mode/native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently.dag delete mode 100644 dag/gunbc/recurring_failure_mode/native_test_route_set_form_refuses_universe_underived_on_pristine_main.dag diff --git a/dag/gunbc/recurring_failure_mode/native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently.dag b/dag/gunbc/recurring_failure_mode/native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently.dag new file mode 100644 index 00000000000..94efa5be741 --- /dev/null +++ b/dag/gunbc/recurring_failure_mode/native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently.dag @@ -0,0 +1,24 @@ +module gunbc.recurring_failure_mode.native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently + +import std.types { NonEmptyStr } +import gunbc.recurring_failure_mode { RecurringFailureMode } +import std.decl_ref { DeclarationRef, WholeDeclaration } + +data native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently: RecurringFailureMode = RecurringFailureMode { + identity: "native_test_route_package_pattern_over_namespace_prefix_returns_universe_zero_silently" as NonEmptyStr, + + receipts: [ + "**a package pattern over a namespace prefix (`//v2/test/claim/match_binder:all`) silently returns an empty universe -- universe=0, population=0, refused universe_underived -- where the correct behavior is a typed refusal naming the operand mismatch; the package half of a target pattern matches by exact package equality, and no module's package equals the prefix, so nothing can match (INVALID STATE: the lane reports success-shaped silence -- an empty selection -- instead of the typed operand refusal a mis-targeted pattern deserves, so a caller cannot distinguish 'wrong operand' from 'the lane is dead').**", + "CORRECTION OF THIS ROW'S PREDECESSOR (native_test_route_set_form_refuses_universe_underived_on_pristine_main, merged in #13236, deleted here): its observed state was real (the set-form invocation refuses with universe_underived on every head tried) but its diagnosis -- a break in the universe derivation entering main in a window -- is WITHDRAWN, unverified under the corrected instrument. The one-dispatch A/B below at a single head, same build, same seed emit, separates the operand from the lane.", + "RECEIPT (2026-10-04, clever-bat-68, remote BuildBuddy job ja878eb10, one dispatch, pristine main ed68b5573b336eb64fc1d2aa52d1c9fa29e4b247): the recursive form `gunbc test '//v2/test/claim/match_binder/...'` derives universe=13 population=13 (file_refusals=3, unrelated -- body_lowering_reason_service_realization_unreachable, parse_g0_tokens_remain); the set-form `gunbc test '//v2/test/claim/match_binder:all'` in the SAME build derives universe=0 population=0 and refuses universe_underived. Both tallies are re-derivable with the recorded invocation at the named sha.", + "RECORDED, NOT CHASED HERE (same receipt, the recursive run): the lane's qualification refuses on main with required_native_pass_regressed, unattributed_exclusions_present, and positive_population_empty -- the qualification gates beside the pattern operand; a separate row owns them if they recur.", + "RUNG FOUND AT: loud-but-blind -- the empty universe is typed (exit 2, terminal row, [native-occurrence-census] universe=0 observed=0) yet success-shaped to exit-only consumers, and it names universe_underived (a derivation failure) when the failure is the pattern operand; no floor lane observes the difference.", + "CEILING: structurally decidable. The pattern matcher can compare the pattern's package against the enumerated modules' packages and refuse with the mismatch named (which packages were in the universe, which the pattern's package half asked for), so the silent zero is a finite diff in the lane's refusal path.", + "NEXT-RUNG TRIGGER, naming the capability: a package pattern over a namespace prefix on main refuses with a typed operand refusal naming the mismatch (the pattern's package half and the enumerated packages), and an exact-package pattern and the recursive form keep deriving their universes as they do today.", + ], + + evidence: [ + DeclarationRef { module_path: "gunbc.witness_v2_native_route", decl_name: "native_route_universe_derived", field: WholeDeclaration }, + DeclarationRef { module_path: "v2.compiler.compile", decl_name: "native_lane_source_facts", field: WholeDeclaration }, + ], +} diff --git a/dag/gunbc/recurring_failure_mode/native_test_route_set_form_refuses_universe_underived_on_pristine_main.dag b/dag/gunbc/recurring_failure_mode/native_test_route_set_form_refuses_universe_underived_on_pristine_main.dag deleted file mode 100644 index 5c66ab9c870..00000000000 --- a/dag/gunbc/recurring_failure_mode/native_test_route_set_form_refuses_universe_underived_on_pristine_main.dag +++ /dev/null @@ -1,28 +0,0 @@ -module gunbc.recurring_failure_mode.native_test_route_set_form_refuses_universe_underived_on_pristine_main - -import std.types { NonEmptyStr } -import gunbc.recurring_failure_mode { RecurringFailureMode } -import std.decl_ref { DeclarationRef, WholeDeclaration } - -data native_test_route_set_form_refuses_universe_underived_on_pristine_main: RecurringFailureMode = RecurringFailureMode { - identity: "native_test_route_set_form_refuses_universe_underived_on_pristine_main" as NonEmptyStr, - - receipts: [ - "**the set-form native test route derives an empty universe on pristine main -- `gunbc test '//pkg:all'` refuses with universe_underived (beside the narrow-pattern artifacts positive_population_empty and required_native_pass_regressed), enumerates zero identities, and per-identity native evidence cannot be produced by any session** (INVALID STATE: the instrument returns 'nothing to run', which reads as success-shaped silence to anything downstream that consumes only the exit status of the required floor; the required floor itself runs claim_executor, so CI stays green while the set-form route is dead).", - "RECEIPT (2026-10-04, clever-bat-68, main b71e076ed33084d9a1bdbadd75e9ab9ac5bea0ba, remote BuildBuddy job j35cc88f2): `gunbc test '//v2/test/claim/match_binder:all'` with GITHUB_SHA set, bare invocation, seed emit built clean -- exit 2; driver rows carry exactly one lane row (identities=0), [native-occurrence-census] universe=0 observed=0 unobserved=0, file_refusals=0. The same refusal holds on the newer main head bc7838f7b4.", - "RECEIPT (2026-10-04, clever-bat-68, remote job jeac904a5, one dispatch looping three main-history shas): the rebase base 1b4d5033bf refuses (one file refusal: src/v2/std/node.dag, body_lowering_reason_function_value_body_unread) and still derives an empty universe; a8caab2618 (#13098) refuses with no file refusals at all -- the node.dag refusal is already fixed there, yet the empty universe persists, so the node.dag refusal is NOT the cause; 8102a30f6b refuses with the ingested set collapsed to a pair of paths. The per-sha tallies are re-derivable with the recorded invocation at each sha.", - "RECEIPT (2026-10-04, clever-bat-68, remote job j9abe886d, four shas looped): the midpoint of the pre-base window (2900bfae77) refuses; e23436ab33 (#13022, advisories counted by identity) refuses; 56a5ab92aa (#13007, StaleBinary refusal) refuses; the 861c829ac6 (#12506) run was killed by the remote runner's 1h free-tier timeout after a clean build (inconclusive). Each result is re-derivable with the recorded invocation at the named sha (remote BuildBuddy dispatch, seed emit clean, bare set-form label). The break is therefore present at or before the midpoint of the 40 first-parent commits in a66665ed93..1b4d5033bf, and in both of the hottest route commits tested from the newer half.", - "PRE-EXISTING GOOD STATE (2026-10-02, eager-cat-664, head 17fccbf3f62, per the sibling row native_infer_accepts_only_bool_and_int_match_scrutinees's receipt; and 2026-10-03, clever-bat-68, remote jobs j52a3bf42..j95f7798c at a66665ed93): the same invocation derived a non-empty universe (identities=8, closure_modules=15) and enumerated per-identity verdicts in driver-rows.jsonl. The break entered main in the window a66665ed93..1b4d5033bf.", - "INVARIANCE TO THE FINDER'S OWN CHANGES (2026-10-04, remote jobs jc3e5e428, jf14cc929, j36fcf0ae, jf6c8a28a): the refusal is identical with and without the session's probe-module commit (control at d508aee681), and passing CI's explicit roots to gunbc test (`--source-root dag --source-root src/v2`, the argv the required lane gives claim_executor) exits instantly with status 2 and no driver rows -- wrong argv for the test verb, not a fix.", - "MECHANISM KNOWN SO FAR: the emitted driver's grammar is `adjudicate ` (src/v2/compiler/00_compile.dag); the universe is the join of discovery's textual answer (the facts file's discovery.rows, folded over every source through the declared discovery authority), route membership (module namespace starts with v2.test.), and the pattern (extdeps.bazel.target_pattern). Discovery read the whole corpus under the partition telemetry of the rebase base and still produced zero surviving rows, so the break is upstream of pattern matching -- in facts production or the membership join, not in the pattern matcher. In the same window the lane runner itself was heavily reworked -- `git diff a66665ed93 1b4d5033bf -- src/v1/stage0/src/cli_run/native_lane_runner.rs src/v1/stage0/src/cli_run/required_floor_runner.rs` -- (#13005 route summary, #13007 StaleBinary, #13022 advisories by identity); the driver-side occurrence census and D0-ADJUDICATE machinery are part of that movement.", - "DISTINGUISHING FACTS. Not an OOM or a runner limitation: the lane refuses in seconds after a clean build, on the same machine that built the emitted closure. Not the narrow-pattern artifacts (positive_population_empty, required_native_pass_regressed): those accompany a DERIVED universe on a narrow pattern and were present in the pre-break runs too; universe_underived is the new refusal class. Not stale_binary (#13007): the cause name is universe_underived, and #13007's own head refuses identically. Not the node.dag body-unread refusal (#13010's subject): a8caab2618 has no file refusals at all and still derives universe=0.", - "RUNG FOUND AT: loud-but-blind -- the refusal is typed (exit 2, terminal row, [native-occurrence-census] universe=0 observed=0) yet success-shaped to exit-only consumers, and it masks every per-identity verdict on every branch; no floor lane observes the set-form route's death.", - "CEILING: structurally decidable. The discovery fold and the membership join are total over the corpus; an empty universe after 7436 corpus reads is a join or production bug with a finite diff to find, not a frontier.", - "NEXT-RUNG TRIGGER, naming the capability: a set-form `gunbc test '//v2/test/claim/match_binder:all'` on main again derives a non-empty universe (at least one identity enumerated from discovery rows joined with route membership), adjudicates the pattern's identities, and persists per-identity rows in target/v2-native-lane/driver-rows.jsonl -- the instrument state that a66665ed93 had and main lost.", - ], - - evidence: [ - DeclarationRef { module_path: "gunbc.witness_v2_native_route", decl_name: "native_route_universe_derived", field: WholeDeclaration }, - DeclarationRef { module_path: "v2.compiler.compile", decl_name: "native_lane_source_facts", field: WholeDeclaration }, - ], -}