Repository navigation
Combine race-safe SQL namespaces with current Rustice runtime - #143
Merged
osipovartem merged 5 commits intoOct 31, 2026
Merged
osipovartem merged 5 commits into
osipovartem merged 5 commits into
Conversation
Force two independent SQLite pools past missing-namespace prechecks before identity insertion. Cover empty, mixed empty/nonempty, and disjoint properties with exactly one success and one typed conflict; verify identity count and winner-only properties from both catalogs. Document the requirement to stop older writable catalog versions during rollout. The synchronization hook is test-only; all runtime blobs outside the SQL catalog remain unchanged from 5d7b6f6.
osipovartem
marked this pull request as ready for review
October 31, 2026 21:10
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.
Summary
Combine the race-safe SQL namespace implementation from #136 with the actual
Rustice runtime branch, based on
5d7b6f6d(rustice/footer-hit-pre-touch).Do not replace the newer runtime with the older SQL-only lineage.
the other runtime fixes. The Catalog API and runtime dependency versions are unchanged.
namespace identity uniqueness violation as a typed commit conflict.
futures-timerdependency edge for bounded deadlockretry; do not upgrade package versions or replace the runtime lineage.
PostgreSQL and MySQL pools. Cover empty/empty, empty/nonempty and disjoint
properties; require one success, one typed conflict, one identity row and
winner-only properties visible through both catalogs.
cfg(test)-only pause after the missing-identity probe. Commit promotion andremoval of the last legacy property before resuming DROP's locking read.
namespaces remain readable, but mixed-version writes and downgrade are unsafe;
initialization requires schema DDL privileges.
The latest test instrumentation adds no production SQL, scan-path work, runtime
configuration or public API. It does not solve remote completion-unknown recovery,
provide a PostgreSQL-backed Rustice daemon route, or qualify the benchmark metastore.
Local Qualification: 2026-10-31
Rust 1.99.0, offline/locked, opt-level-1 CI test profile, one shared target and
serial test execution. PostgreSQL 11-alpine, MySQL 8.1 and LocalStack 4.5 run as
local testcontainers; no Snowflake or cloud account is used.
Final strengthened test revision:
9fd801043972e4b03a4a3fd32f3704122c41b82b.f59168c06ad9e60e0db478f9f8d820fce9b80b957d73f0ede838efb717f9267dbc538942; complete 26-test suite passes againA separate read-only reviewer examined correctness, regressions, performance,
API compatibility and test strength. Both earlier test-coverage findings are
addressed; the reviewer also checks the mutant failures and exact restoration.
Final independent review approved this exact fork revision after the downstream
qualification below. That approval does not make Rustice #954 merge-ready.
Downstream Qualification: 2026-10-31 UTC
All six Iceberg dependencies in Rustice draft #954 select
9fd80104. Thefrozen combined candidate
59efc9d7,based on main
f2c4bf32, includes both dependent leaf stacks, not just #954.The same frozen default-feature daemon served all acceptance cases. Its
SHA-256 is
b25e6aae72f22c7e2b6208033419e982a897e5e0dccc102004e59c2f63c59d57.It is built separately from the test-helper-enabled SQL harness, using Rust
1.99.0 and the opt-level-1 CI profile, not a release performance build.
The final wire qualification adapter verified actual listener PID, endpoint,
executable path and SHA for all seven smoke starts, and atomically persisted
receipts before SQL. Five controls pass normally and under Python
-O, includingan unrelated healthy listener, interrupted startup and receipt-write failure.
The exact adapter and final receipts received separate read-only approval.
Earlier smoke observations are retained but are not the primary qualification;
the original upstream smoke source was not changed by this local adapter.
No expectations or baseline were changed by the repin/qualification. The older
CREATE SCHEMA feature in the combined Rustice stack intentionally corrects one
fixture's post-DROP current schema to PUBLIC, as live-calibrated in Rustice #953.
Scope Limits
Keep Rustice #954's remote in-doubt recovery, broader backend-lifetime and
release performance gates explicit. No hosted CI, new full live Snowflake audit,
SPCS deployment, PostgreSQL daemon support or benchmark qualification is claimed.