Integration-test hardening + bootstrap race tolerance + XML docs#120
Merged
Integration-test hardening + bootstrap race tolerance + XML docs#120
Conversation
- StatementDispatcher: pass CAS query params (if_seq_no/if_primary_term) via IRequestParameters instead of embedding in path string (OpenSearch.Net rejects paths with query strings); add CasPutParameters class - StatementDispatcher: handle OpenSearchClientException in DispatchUpdateSettingsAsync and DispatchReindexAsync for ThrowExceptions=true clients - SafeDefaultMergeMiddleware: co-inject conflicts:proceed with op_type:create on REINDEX to prevent abort-on-conflict defeating idempotency (ADR-0011) - R-24c gap-fill tests: handle both ThrowExceptions modes in DynamicStrict assertion; make LedgerWrite cleanup defensive against container teardown races - InitializeTestContainers: add HYPERBEE_TESTS_PROVIDERS_ONLY env gate to scope container startup; add HYPERBEE_TESTS_SKIP_SINGLE_NODE support - CouchbaseTestContainer: remove erroneous port 80 mapping
- LedgerIndexInitStep / LockIndexInitStep: tolerate the TOCTOU race between Exists() and Create() by detecting `resource_already_exists_exception` in both client modes (response-based and exception-based). On race-loss the ledger step still verifies the existing mapping; the lock step succeeds. - OpenSearchMigrationOptions: add XML docs to every public type, enum value, property, const, and ctor; lift R-19 / R-29 / PA-2 rationale from line comments into <summary>/<remarks>; add <see cref> links between related options (LockRenewInterval <-> LockStaleAfter, etc.). - OpenSearchExceptions: add XML docs to every exception type and ctor; document RecordId/StatementIndex/FailedStatementIndex properties.
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
Two scope-distinct improvements bundled per the established release cadence (v2.2.1):
Dispatcher / integration-test hardening (commit
5563b5e):StatementDispatcher: pass CAS query params (if_seq_no/if_primary_term) viaIRequestParametersinstead of embedding them in the path string (OpenSearch.Net rejects embedded query strings); addCasPutParameters.OpenSearchClientExceptioninDispatchUpdateSettingsAsyncandDispatchReindexAsyncforThrowExceptions=trueclients.SafeDefaultMergeMiddleware: co-injectconflicts: proceedwithop_type: createon REINDEX to prevent abort-on-conflict defeating idempotency (ADR-0011).ThrowExceptionsmodes; defensive cleanup against container-teardown races.InitializeTestContainers:HYPERBEE_TESTS_PROVIDERS_ONLYenv gate to scope startup;HYPERBEE_TESTS_SKIP_SINGLE_NODEsupport.CouchbaseTestContainer: remove erroneous port 80 mapping.Public-surface gap closure (commit
2528250):LedgerIndexInitStep/LockIndexInitStep: tolerate the TOCTOU race betweenExists()andCreate()by detectingresource_already_exists_exceptionin both client modes. Ledger step still verifies the existing mapping on race-loss.OpenSearchMigrationOptions: full XML docs on every public type, enum value, property, const, and ctor; lift R-19 / R-29 / PA-2 rationale from line comments into<summary>/<remarks>; add<see cref>links between related options.OpenSearchExceptions: full XML docs on every exception type and ctor.Test plan
multi_node_tests.yml.