Repository navigation
fix(catalog-engine): unreachable_code on never-typed error breaks rust CI (stable 1.99) - #856
Merged
Merged
Conversation
…s unreachable_code
The floating `stable` toolchain (rustc 1.99.0) now infers the tower loader's
`.oneshot(req).await` error as the never type, so `.map_err(|e| e.to_string())?`
trips `unreachable_code` under `-D warnings` and breaks the rust CI job on main.
Replace it with `.unwrap_or_else(|e| match e {})` — the error is uninhabited, so
this takes the value directly, preserving behaviour with no dead closure.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
viethqb
added a commit
that referenced
this pull request
Nov 13, 2026
…e mask gate SP3a gates StarRocks column masks and row filters on the egret fork image level (>= 3). These pre-existing DB-gated fixtures seeded their StarRocks engine with an official (or absent) image tag, which resolves to no fork level, so the gate lowered every mask and row filter to a deny — dropping the MASK_HASH the rename tests assert and hiding the row-filter tie the boot-pass test asserts. The failures surfaced only now because the unreachable_code compile break (fixed in #856) had kept the DB-gated rust job from ever reaching them. Point the fixtures at the fork image egret runs in production (ghcr.io/egret-data/egret-starrocks-fe:4.1.7-egret.4, level 4): - table_hook_db / view_rename_db: renamed table/column/view keep their mask. - recompile_on_tag_write: assign recompiles the bound profile (mask + deny). - governance_attention: the tied row-filter rules reach the engine, so the compile fails and the boot-pass refusal names both rules. Its k_sr_eng is now inserted inline with the fork image; the shared engine() helper seeds no image, and the plugin_unmodelled test still needs the floating tag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
viethqb
added a commit
that referenced
this pull request
Nov 13, 2026
…int framing (#854) * feat(engine-mgmt): parse the egret fork image level from an image tag Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * style(engine-mgmt): cargo fmt the egret image level test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(perm-ir): carry the egret image level on the EP input Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(perm-ir): gate StarRocks mask/row filter on the fork image level; mixed EP = least capable Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(perm-ir): wire the egret image gate into the lowering and enforcement paths The matrix image dimension was inert: no production path consulted the real per-engine image level. lower_rules now passes the EP's most-restrictive effective image level into lower_rule (a StarRocks mask / row filter below egret.3 is reported as a skip, not lowered), AttachedEngine carries the level for the NotEnforced reporting, and load_ep reads the engines' image levels before any rule is lowered. Byte-identical on fork images (effective level >= 3); fixtures that ran StarRocks on official or unpinned images now pin the fork image. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(perm-ir): an image-gated StarRocks mask / row filter lowers to a deny, not to nothing Below egret.3 a missing mask policy served the column in cleartext. The gated rule now lowers to a withhold of its columns / tables to everyone but the exemptions, rendered as an access deny attributed to the rule, and is still reported in the compile summary. The enforcement report uses the same EP-wide most-restrictive image level as the lowering. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(ui): call the governance profile an enforcement point Surface text only: UI labels and help text, OpenAPI descriptions and the no-tag-service warning. Identifiers, JSON keys, routes and the table are unchanged. openapi.json and the generated client are regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * style(gov): rustfmt the enforcement-point rename's rewrapped strings Task 5's profile->enforcement-point rename lengthened three warning-string consts past the wrap point; cargo fmt had not been re-run on them. Whitespace only; no behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(perm-ir): seed StarRocks fixtures on the egret fork image for the mask gate SP3a gates StarRocks column masks and row filters on the egret fork image level (>= 3). These pre-existing DB-gated fixtures seeded their StarRocks engine with an official (or absent) image tag, which resolves to no fork level, so the gate lowered every mask and row filter to a deny — dropping the MASK_HASH the rename tests assert and hiding the row-filter tie the boot-pass test asserts. The failures surfaced only now because the unreachable_code compile break (fixed in #856) had kept the DB-gated rust job from ever reaching them. Point the fixtures at the fork image egret runs in production (ghcr.io/egret-data/egret-starrocks-fe:4.1.7-egret.4, level 4): - table_hook_db / view_rename_db: renamed table/column/view keep their mask. - recompile_on_tag_write: assign recompiles the bound profile (mask + deny). - governance_attention: the tied row-filter rules reach the engine, so the compile fails and the boot-pass refusal names both rules. Its k_sr_eng is now inserted inline with the fork image; the shared engine() helper seeds no image, and the plugin_unmodelled test still needs the floating tag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The CI
rustjob fails onmain(and therefore on every code PR) because the repo'srust-toolchain.tomlpins the floatingstablechannel, and the current stable (rustc 1.99.0) now infers the tower catalog-loader's.oneshot(req).awaiterror as the never type. That makes.map_err(|e| e.to_string())?triperror: unreachable_codeunder-D warnings.Surfaced by PR #854's
rustjob; the file is unchanged on that branch and identical here — this is a pre-existing, toolchain-driven breakage, not a change from any feature branch.Fix
One line in
crates/egret-catalog-engine/src/table_hook.rs(drop_registered):The error is uninhabited, so
match e {}is exhaustive andunwrap_or_elsetakes the value directly — no dead.to_string()closure, no change in behaviour. A full-workspacecargo clippy --workspace --all-targets -- -D warningsis clean after this (only this one site was affected) andcargo fmt --checkpasses.Verification
cargo clippy --workspace --all-targets -- -D warnings→ clean (exit 0).cargo fmt --check→ clean.🤖 Generated with Claude Code