fix(csharp): isolate per-run mutable state to a per-job schema#446
Open
jadewang-db wants to merge 1 commit intomainfrom
Open
fix(csharp): isolate per-run mutable state to a per-job schema#446jadewang-db wants to merge 1 commit intomainfrom
jadewang-db wants to merge 1 commit intomainfrom
Conversation
Each Tests Workflow job (and matrix entry) now creates its own per-run
schema in the shared workspace and drops it at job end:
main.adbc_testing_run_${run_id}_${run_attempt}_${protocol}
CI uses this name for db_schema, metadata.schema, and the connection
test query. Existing tests that mutate state via TestConfiguration.
Metadata.Schema (StatementTests, DriverTests, ClientTests, the
Databricks.sql template, etc.) automatically inherit the isolation
without code changes.
main.adbc_testing remains as the read-only fixture schema. The two
test classes that hard-code it (SeaMetadataE2ETests,
StatementMetadataTelemetryTests) now reference
DatabricksTestEnvironment.FixtureSchema with a comment noting the
read-only contract.
Why: cross-job races on the shared workspace were the root cause of
PECO-3000 flakes. Disabling intra-assembly parallelism (PR #395)
covered within-job races; this change closes the across-job races
(thrift/rest matrix entries, parallel merge-queue PRs).
The cleanup step uses if: always() so failed/cancelled jobs still drop
their schemas. Cleanup errors warn but do not fail the job — leaked
schemas are harmless and can be GC'd separately.
Adds docs/e2e-test-isolation-guidance.md describing the schema model
and the rules for writing/reviewing E2E tests against a shared
workspace.
Co-authored-by: Isaac
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.
🥞 Stacked PR
Use this link to review incremental changes.
What's Changed
Each Tests Workflow job (and matrix entry) now creates its own per-run
schema in the shared workspace and drops it at job end:
main.adbc_testing_run_${run_id}${run_attempt}${protocol}
CI uses this name for db_schema, metadata.schema, and the connection
test query. Existing tests that mutate state via TestConfiguration.
Metadata.Schema (StatementTests, DriverTests, ClientTests, the
Databricks.sql template, etc.) automatically inherit the isolation
without code changes.
main.adbc_testing remains as the read-only fixture schema. The two
test classes that hard-code it (SeaMetadataE2ETests,
StatementMetadataTelemetryTests) now reference
DatabricksTestEnvironment.FixtureSchema with a comment noting the
read-only contract.
Why: cross-job races on the shared workspace were the root cause of
PECO-3000 flakes. Disabling intra-assembly parallelism (PR #395)
covered within-job races; this change closes the across-job races
(thrift/rest matrix entries, parallel merge-queue PRs).
The cleanup step uses if: always() so failed/cancelled jobs still drop
their schemas. Cleanup errors warn but do not fail the job — leaked
schemas are harmless and can be GC'd separately.
Adds docs/e2e-test-isolation-guidance.md describing the schema model
and the rules for writing/reviewing E2E tests against a shared
workspace.
Co-authored-by: Isaac
Please fill in a description of the changes here.
This contains breaking changes.
Closes #NNN.