Skip to content

Commit a354030

Browse files
jeet1995xinlian12Annie Liangalzimmermsftxitzhang
authored
[GATEWAY V2]: Bifurcate connect / connection-acquire timeout between Gateway V1 and Gateway V2 endpoints. (#48174)
* Introducing Gateway V2.0 dedicated HTTP timeout policy. * Introducing Gateway V2.0 dedicated HTTP timeout policy. * Introducing Gateway V2.0 dedicated HTTP timeout policy. * Introducing Gateway V2.0 dedicated HTTP timeout policy. * Clean up. * Clean up. * Clean up. * FixFewTests-part2 (#47933) * fix few tests part 2 --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> * Remove test-jar dependency with copied code (#47917) * [VoiceLive]Add Foundry Agent integration, filler responses, and reasoning effort configuration (#47772) Co-authored-by: Xiting Zhang <xitzhang@microsoft.com> * Remove mssql-jdbc dependency and update assertj-core (#47945) * [VoiceLive]Release 1.0.0-beta.4 (#47946) * [VoiceLive]Release 1.0.0-beta.4 Updated release date for version 1.0.0-beta.4 and added feature details. * Revise CHANGELOG for clarity and bug fixes Updated changelog to remove breaking changes section and added details about bug fixes. * [AutoPR azure-resourcemanager-nginx]-generated-from-SDK Generation - Java-5433741 (#46952) * Configurations: 'specification/nginx/Nginx.Management/tspconfig.yaml', API Version: 2025-03-01-preview, SDK Release Type: beta, and CommitSHA: 'aae85aa3e7e4fda95ea2d3abac0ba1d8159db214' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5433741 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/nginx/Nginx.Management/tspconfig.yaml', API Version: 2025-03-01-preview, SDK Release Type: beta, and CommitSHA: 'de8103ff8e94ea51c56bb22094ded5d2dfc45a6a' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5857234 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com> * Update wrong data type (#47937) false can't be assigned to int in java. Updating type to boolean * Deprecating azure-resourcemanager-mixedreality (#47943) * Deprecating azure-resourcemanager-mixedreality * Typos * use 1.0.1 as version * Update CHANGELOG.md --------- Co-authored-by: Michael Zappe <michaelzappe@microsoft.com> Co-authored-by: Weidong Xu <weidxu@microsoft.com> * [Automation] Generate SDK based on TypeSpec 0.39.1 (#47953) * Increment package versions for mixedreality releases (#47955) * fixFewTests - Part3 (#47939) * fix few tests part 3 --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Re-enable spring-cloud-azure-starter-monitor for Spring Boot 4 (#47951) * Clean up. * Clean up. * Migrate azure-search-documents to TypeSpec (#47819) * Initial regeneration using TypeSpec * Working on migrating tests, adding back convenience APIs that are being kept * Complete most of the migration * Additional work * Stable point before tests * Newer TypeSpec SHA * Add back SearchAudience support * Last changes before testing * Rerecord tests and misc fixes along the way * Fix a few recordings and stress tests * Fix a few recordings and linting * Few more fixes * Another round of recording * Rerun TypeSpec codegen * Remove errant import * Cleanup APIs * Regeneration * Clean up linting * Increment package versions for nginx releases (#47965) * Increment package versions for ai releases (#47947) * escapeNonAscIIPkValueForQueryPlanAndQuery (#47881) * escape non-ascii character for pkValue --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> Co-authored-by: Fabian Meiswinkel <fabianm@microsoft.com> * Deprecate AgriFood FarmBeats SDK and code cleanup (#47935) * Search TypeSpec migration - remove last few BinaryData APIs from public API (#47967) * Fix GraalVM native image compatibility for AzureIdentityEnvVars (#47940) * Release azure-cosmos 4.78.0, azure-cosmos-encryption 2.27.0, and Spark connector 4.43.0 (#47968) * Release azure-cosmos 4.78.0, azure-cosmos-encryption 2.27.0, and Spark connector 4.43.0 --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> Co-authored-by: Fabian Meiswinkel <fabianm@microsoft.com> * Fix: Include stack trace in token error logs (#47974) * [AutoPR azure-resourcemanager-resources-deploymentstacks]-generated-from-SDK Generation - Java-5803514 (#47817) * Configurations: 'specification/resources/resource-manager/Microsoft.Resources/deploymentStacks/tspconfig.yaml', API Version: 2025-07-01, SDK Release Type: stable, and CommitSHA: '652ad4cb131256f10a90ea2df207b38cf35d6671' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5803514 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * revert for script bug * Configurations: 'specification/resources/resource-manager/Microsoft.Resources/deploymentStacks/tspconfig.yaml', API Version: 2025-07-01, SDK Release Type: stable, and CommitSHA: '9762f2dd848f6955a855f5dbe8c4df8f4d5dfd66' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5807045 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * revert for script bug * Configurations: 'specification/resources/resource-manager/Microsoft.Resources/deploymentStacks/tspconfig.yaml', API Version: 2025-07-01, SDK Release Type: stable, and CommitSHA: 'da3e3a42110d96609505c4bcb5b4d768341203a8' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5846520 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Update CHANGELOG.md * Skip Revapi checks in pom.xml * revert azure-resourcemanager-resources --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com> * Set default values for head_sha and repo_url in generate_typespec_project (#47978) * Initial plan * Set default values for head_sha and repo_url in generate_typespec_project - Set head_sha default to "HEAD" - Set repo_url default to "Azure/azure-rest-api-specs" Co-authored-by: weidongxu-microsoft <53292327+weidongxu-microsoft@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: weidongxu-microsoft <53292327+weidongxu-microsoft@users.noreply.github.com> * Increment package versions for cosmos releases (#47983) * Nregion synchronous commit feature (#47757) * Adding support for nregion commit feature * Adding nregion header serialization in RNTBD Adding unit tests Refactoring and cleanup * Update sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/DocumentServiceRequestContext.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update code doc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * adding unit test group Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fixing imports issue caused by copilot * fixing tests * Adding property for batch requests * Refactoring the ConsistencyWriter Adding global nregion glsn to diagnostics Test changes * Fixing swith statement --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add ConnectionDetails support for EventHubs (#47926) * Increment package versions for edgeactions releases (#47991) * mgmt network, update api-version to 2025-05-01 (#47831) * feat(network): update network package to version 2025-05-01 Update the network resource manager package from version 2025-03-01 to 2025-05-01 in the API specifications configuration. * gulp codegen * chore(network): promote azure-resourcemanager-network to stable release - Update version from 2.58.0-beta.1 to 2.58.0 in version_client.txt - Remove beta suffix from unreleased dependencies list - Update README.md dependency version to 2.58.0 - Update pom.xml versions from 2.58.0-beta.1 to 2.58.0 - Update parent pom dependency reference to stable version * chore(network): update api-version to 2025-05-01 in azure-resourcemanager-network - Update api-version to 2025-05-01 in CHANGELOG.md - Move azure-resourcemanager-network dependency updates section to appropriate location - Update release version from 2.58.0-beta.1 to 2.58.0 with release date 2026-01-28 * chore(network): update assets tag for azure-resourcemanager-network - Update Tag from java/network/azure-resourcemanager-network_95e9cb8046 to java/network/azure-resourcemanager-network_b15223c7bc in assets.json * feat(revapi): add ignored field removal exceptions for FirewallPolicyIntrusionDetectionProfileType - Ignore removal of ADVANCED enum value from FirewallPolicyIntrusionDetectionProfileType - Ignore removal of BASIC enum value from FirewallPolicyIntrusionDetectionProfileType - Ignore removal of STANDARD enum value from FirewallPolicyIntrusionDetectionProfileType - Add justification that these enum values were removed during TypeSpec/Swagger alignment and are no longer supported by the backend service * feat(network): remove deprecated firewall policy intrusion detection profile types BREAKING CHANGE: Removed ADVANCED, BASIC, and STANDARD from FirewallPolicyIntrusionDetectionProfileType to align with the service/TypeSpec model. * Modify version comment for network dependency Updated version comment for azure-resourcemanager-network dependency. * Update sdk/network/azure-resourcemanager-network/CHANGELOG.md Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> * Update CHANGELOG for breaking changes in 2.58.0 Removed deprecated firewall policy types to align with service model. * Update CHANGELOG for breaking changes in 2.60.0-beta.1 Removed deprecated firewall policy types to align with service model. * Document breaking changes in CHANGELOG.md Removed deprecated types from FirewallPolicyIntrusionDetectionProfileType to align with the service model. * Update CHANGELOG for breaking changes and dependency Removed deprecated firewall policy types to align with the service model and updated API version. * Update CHANGELOG for version 2.58.0 Removed deprecated types from FirewallPolicyIntrusionDetectionProfileType to align with the service model. --------- Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> * [AutoPR azure-resourcemanager-computebulkactions]-generated-from-SDK Generation - Java-5849310 (#47934) * Configurations: 'specification/computebulkactions/ComputeBulkActions.Management/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: '1fce3d8fcfd7da372b2e98fcc75ede56b9ddf6c6' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5849310 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/computebulkactions/ComputeBulkActions.Management/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: '24902354a88f1ca5349ea3049edae370599c8e57' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5849431 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/computebulkactions/ComputeBulkActions.Management/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: '37e381cdb441a1370593507d94157f3f6a57a154' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5858431 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Revert "Configurations: 'specification/computebulkactions/ComputeBulkActions.Management/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: '37e381cdb441a1370593507d94157f3f6a57a154' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5858431 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release." This reverts commit 8ca5238e7c4eb11b2ef84714e5a77571e85b2a12. * Configurations: 'specification/computebulkactions/ComputeBulkActions.Management/tspconfig.yaml', API Version: 2026-02-01-preview, SDK Release Type: beta, and CommitSHA: '96e89b58d95282fc014f19db8e0d41d4d8608838' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5858998 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Update version_client.txt --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com> Co-authored-by: XiaofeiCao <xiaofeicao@microsoft.com> * Increment package versions for disconnectedoperations releases (#47992) * Increment package versions for network releases (#47994) * Deprecating azure-mixedreality-authentication (#47942) * Deprecating azure-mixedreality-authentication * Typos --------- Co-authored-by: Michael Zappe <michaelzappe@microsoft.com> * Remove all MixedReality SDKs (#47885) * Remove all MixedReality SDKs * Merge and add change to Codeowners aqgain * Reset and add changes to Codeowners again * Reset and add changes to Codeowners again again --------- Co-authored-by: Michael Zappe <michaelzappe@microsoft.com> * Remove Operational Insights from CODEOWNERS (#47989) Label doesn't exist and doesn't map to a repo path. * Update service owners to AzureSdkOwners in CODEOWNERS (#47988) Updating since this is a label our team uses, not service teams * Fix java - spring - tests by adding Thread.sleep (#47990) * Fix java - spring - tests by changing the position of inseted spring-boot-dependencies * Change timeout from 30 to 100 second * Try to fix the test failure by adding Thread.sleep * Accelerate the test by parallel * Delete dependencyManagement section to check whether it can pass test * Delete unused items in eng/versioning/external_dependencies.txt * Delete parallel related configuration * Change PRLabel from %Azure Quantum to %Quantum (#47948) updating to use right label * Remove commented Device Provisioning Service owners (#47949) Device Provisioning Service label doesn't exist. This never did anything. * Add checkstyle rule to validate serialization method completeness (#47916) * Initial plan * Add SerializableMethodsCheck for JsonSerializable and XmlSerializable validation Co-authored-by: srnagar <51379715+srnagar@users.noreply.github.com> * Fix duplicate comment headers in checkstyle configurations Co-authored-by: srnagar <51379715+srnagar@users.noreply.github.com> * Update SerializableMethodsCheck and tests * Update ServiceClientCheck * fix formatting and checkstyle suppression package names * fix reported checkstyle errors * update search checkstyle * Update sdk/search/azure-search-documents/checkstyle-suppressions.xml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix SerializableMethodsCheck to skip validation for classes that extend another type * update search checkstyle suppression * fix unreleased dependency list --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: srnagar <51379715+srnagar@users.noreply.github.com> Co-authored-by: Srikanta <srnagar@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix pipeline failure about linting-extensions (#48005) * Fix pipeline failure about linting-extensions in sdk/spring/pom.xml * Add linting-extensions in sdk/spring/pipeline/ClientFromSourcePom.xml * Only publish docs.ms and github.io docs if publishing to Maven (#47997) * avoidExtraQuery (#47996) * avoid extra query --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> * Sync eng/common directory with azure-sdk-tools for PR 13968 (#48004) * Updated deployment setting to use http * Use parameters.AdditionalParameters in yaml --------- Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com> * Configurations: 'specification/codesigning/CodeSigning.Management/tspconfig.yaml', API Version: 1.0.0, SDK Release Type: stable, and CommitSHA: '095b67fa70bf85a51667949506fe090e987d2475' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5867192 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. (#47982) Co-authored-by: Weidong Xu <weidxu@microsoft.com> * [Automation] Generate SDK based on TypeSpec 0.39.2 (#48006) * [VoiceLive] Update for agent V2, remove foundry tools, rename filler response (#47979) * [VoiceLive] Regenerate with new TypeSpec, add Scene/Warning models, remove FoundryAgentTool, add AgentSessionConfig sample * update spelling * Rename filler response API to interim response and update tests - Regenerate TypeSpec files from commit 347ca2ab38cc4ac37b4733c519f67920ac6c272d - Rename FillerResponseConfigBase to InterimResponseConfigBase - Rename BasicFillerResponseConfig to StaticInterimResponseConfig - Rename LlmFillerResponseConfig to LlmInterimResponseConfig - Rename FillerResponseConfigType to InterimResponseConfigType - Rename FillerTrigger to InterimResponseTrigger - Update VoiceLiveSessionOptions/Response: fillerResponse -> interimResponse - Replace FillerResponseConfigTest with InterimResponseConfigTest - Update VoiceLiveSessionOptionsNewFeaturesTest for interim response API - Update CHANGELOG.md with breaking changes documentation * Regenerate TypeSpec for interim response API formatting --------- Co-authored-by: Xiting Zhang <xitzhang@microsoft.com> * [VoiceLive] Release 1.0.0-beta.5 (#48013) Co-authored-by: Xiting Zhang <xitzhang@microsoft.com> * Ignore implementation packages when generating docs (#47998) * Ignore implementation packages when generating docs * update comment * update comment * space * Increment package versions for artifactsigning releases (#48017) * [AutoPR azure-resourcemanager-managedops]-generated-from-SDK Generation - Java-5788711 (#47788) * Configurations: 'specification/managedoperations/ManagedOps.Management/tspconfig.yaml', API Version: 2025-07-28-preview, SDK Release Type: beta, and CommitSHA: '83408dfe4894a9b5a5d3989023647bce792efc5f' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5788711 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/managedoperations/ManagedOps.Management/tspconfig.yaml', API Version: 2025-07-28-preview, SDK Release Type: beta, and CommitSHA: 'ed16e10caee8ef2ab09f321272877d0efbec0d1e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5863942 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/managedoperations/ManagedOps.Management/tspconfig.yaml', API Version: 2025-07-28-preview, SDK Release Type: beta, and CommitSHA: '96e40a96feba1bb2bcabd7d1612feb71f94c49a8' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5877195 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/managedoperations/ManagedOps.Management/tspconfig.yaml', API Version: 2025-07-28-preview, SDK Release Type: beta, and CommitSHA: '816b3edf3aeceb7929a5af05aea47e4a00bf6884' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5877312 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Update version_client.txt --------- Co-authored-by: wcas-ms <wcashman@microsoft.com> Co-authored-by: Weidong Xu <weidxu@microsoft.com> * [Kafka connector]AddSupportForThroughputBucket (#48009) * add support for throughput bucket in Kafka connector --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> * mgmt, trustedsigning, update to next preview (#48016) * - Adding nregion feature to changelog (#47987) - Always parsing nregion header in storeresult * Increment package versions for resources releases (#48020) * Increment package versions for managedops releases (#48027) * Remove unused UnitSpec from fabric-cosmos-spark-auth_3 (#48010) * Initial plan * Remove duplicate UnitSpec.scala from fabric-cosmos-spark-auth_3 Per issue #46250, removing the duplicate UnitSpec.scala file that is not used by any tests. The same base test class exists in azure-cosmos-spark_3 and is used by actual tests there. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com> * update release date (#48029) * Replace `azd config list` with `azd auth status` in TROUBLESHOOTING.md (#48031) * Bug 47910.count query text block (#47911) * RED: isCountQuery() should return true for queries in text blocks * GREEN: isCountQuery() should return true for queries in text blocks * RED: isSumQuery() should return true for sum query in java text block * GREEN: isSumQuery() should return true for sum query in java text block --------- Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com> * Add tests for LAZY indexing mode in Cosmos Java SDK (#48024) * Initial plan * Add tests for LAZY indexing mode Added three new test methods to CollectionCrudTest: - createCollectionWithLazyIndexing: Tests creating a collection with LAZY indexing mode - readCollectionWithLazyIndexing: Tests reading a collection with LAZY indexing mode - replaceCollectionWithLazyIndexing: Tests replacing indexing mode from CONSISTENT to LAZY These tests follow the same patterns as existing CONSISTENT mode tests and verify that LAZY indexing mode is properly supported in the Cosmos Java SDK. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix LAZY indexing mode tests - validate server conversion to CONSISTENT LAZY indexing mode has been deprecated in Azure Cosmos DB and is automatically converted to CONSISTENT mode by the server. Updated all three test methods to: 1. Set indexing mode to LAZY (to test the API accepts it) 2. Validate that the server converts it to CONSISTENT (expected behavior) 3. Added comments explaining the deprecation and conversion behavior This fixes the CI test failures where tests were expecting LAZY but receiving CONSISTENT. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com> * Storage - STG101 Beta Features (#48019) * adding new service version (#47408) * STG 101 - Dynamic User Delegation SAS (#47479) * wip implementation * add base tests for SasImplUtilsTests * add base tests for SasImplUtilsTests * revert changes to stringToSign from changes made based on api * remove static from SasImplUtilsTests so that beforeeach works * add documentation for srq and srh * finish sasClientTests * uncomment stream of args from blobSasImplUtilStringToSignUserDelegationKeySupplier * fix linting issue * combine test for srh and srq into blobSasImplUtilStringToSignUserDelegationKey * add recordings for blobSasImplUtilStringToSignUserDelegationKey * add additional srh test to check for trailing newline * add tests for srq * add tests for srq and srh to datalake * fix failing datalake sas tests * add recordings for blobSasImplUtilStringToSignUserDelegationKey * refactor SasTests to make the suppliers easier to read and write * making new values in commonsasqueryparameters final * adding note to new sas query param javadocs that they're only for UD sas * adding note to datalake sas params too * add header to sasimplutiltests * applying spotless * small refactors in new sas test models * adding extra comments to SasClientTests * applying new sas test model to blob sas tests * returning null instead of empty string during formatting * applying new sas test model to blob sas tests * getting suppliers to use new models * removing debugging method * updating assets and fixing spelling * removing unused import * bruh * datalake tests * spotless * style and assets * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * making new query param values deterministic --------- Co-authored-by: browndav <browndav@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * adding uds changelog feature entires * STG 101 - Deprecating BlobErrorCode Typo and Adding Correct Code (#47409) * applying swagger changes and adding deprecation customization * deleting old generated file * adding changelog entry * STG101 - Add Support for Missing SKU Names (#47437) * applying swagger changes, untested * removing random newline in swagger readme * commiting temp test for history purposes * removing temp test * removing newline * adding changelog entry * adding sku names to cspell overrides * STG101 - Delete Blob Conditional Tier (#47438) * applying swagger and public facing changes, not tested * adding changelog entry * adding tests * STG101 - Server-Side Encryption with Rekeying (#47439) * applying swagger and adding value to options bags * removing redundant module requirement * style * adding tests * adding feature to changelog * re-run ci * adding recordings * updating test assets * STG 101 - Files Provisioned V2 Guardrails (#47464) * generating off swagger * adding changelog entry * Update sdk/storage/azure-storage-file-share/CHANGELOG.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * STG101 - Cross-Tenant Support for Principal Bound Delegation Sas (#47461) * generating off swaggers and blob impl * datalake implementation * share implementation * queue implementation * changing tid to tenantId * removing unused import * updating blobsasimplutilstringtosign test supplier * wip * wip * fixing blob readme * adjusting blob tests * adding blob async tests * datalake tests * file and queue tests * cleanup * small positional change * Update sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/FileSasClientTests.java subscribing to mono once instead of twice Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fixing test failure * changing test min service version to 2025.07.05 * addressing copilot comments * fixing autorest version i messed up * fixing revapi error * updating assets * updating datalake service client async methods to stop breaking existing test --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * updating swagger links to be 101 pr into main spec * adding missing cross tenant principal bound delegation sas feature changelog entries * updating blob swagger readme * addressing copilot comments * updating assets * spotless * fixing test names --------- Co-authored-by: browndav <browndav@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Increment package versions for ai releases (#48035) * Adding tests to associate channel lifecycle with Netty's ReadTimeoutException and cancellations. * Update changelog and README files for multiple Azure Storage SDK components to reflect new beta versions and added support for service version 2026-04-06. (#48036) * Replace ThreadLocal Collator with instance Collator (#48037) * Update azd section of Identity troubleshooting guide (#48038) * Update azd section of Identity troubleshooting guide * Update sdk/identity/azure-identity/TROUBLESHOOTING.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Open Storage - STG101 Beta Release Date Bump (#48045) * [SparkConnector]updateTransactionalBulkConfig (#48008) * add transactional bulk config in configuration reference --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * [SparkConnector]IncludeOperationStatusCodeHistoryInStaleProgressLogs (#48022) * Add status code tracking to bulk operations with compressed consecutive identical (statusCode, subStatusCode) pairs into single entries with count and time range. --------- Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com> * Update to use JDK's deafult trust CA store for cert validations (#48046) * Fix Netty ByteBuf leak in RxGatewayStoreModel via doFinally safety net (#48053) * Fix Netty ByteBuf leak in RxGatewayStoreModel via doFinally safety net Add AtomicReference<ByteBuf> tracking to the retained buffer lifecycle in toDocumentServiceResponse(). The retained ByteBuf is tracked when retained, cleared when consumed (StoreResponse creation) or discarded (doOnDiscard), and released as a safety net in a doFinally handler. This handles edge cases where cancellation racing with publishOn's async delivery prevents the doOnDiscard handler from firing, causing the retained ByteBuf to leak. Also fixes a minor typo in the logger format string ({] -> {}). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve ByteBuf leak test: use Sinks.One for timing control Replace Mockito-based HttpResponse mock with concrete subclass to avoid final method interception issues with withRequest(). Use Sinks.One to control body emission timing and simulate ByteBufFlux.aggregate()'s auto-release behavior. Run 20 iterations to reliably catch the race condition between publishOn's async delivery and cancellation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Adding tests to associate channel lifecycle with Netty's ReadTimeoutException and cancellations. * Add Azure Artifacts Feed Setup section to CONTRIBUTING.md (#48032) * Add Azure Artifacts Feed Setup section to CONTRIBUTING.md * Added detail Azure Artifacts feed setup instructions Added detailed steps for setting up the Maven credential provider for Azure Artifacts feed authentication. * Add new terms to cspell configuration * Enhance CONTRIBUTING.md with Azure Artifacts setup Added detailed setup instructions for external and internal contributors regarding Azure Artifacts feed authentication and troubleshooting 401 errors. * Apply suggestion from @weshaggard --------- Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com> * Use CFS as the package resolution source (#47901) * Updated parent pom file to use internal azure artifact feed * Added auth task * Added auth task to more pipeline files * Removed network isolation policy for testing * Added back pom changes for spring service * Updated variables * Fixed spring test template * validate with test feed * Updated env name * updated dep version * use feed name * update test step * removed repository settings * added auth step in some missing places * Reverted token env changes * added mvn extensions to the gitignore file * removed extensions.xml * override repo settings * removed settings file * removed extra script * Updated feed to azure-sdk-for-java * Cleaned up test feed * Adjusted the place to auth maven feed to avoid duplicated auth warnings * Fix: PublishDevFeedPackage runs in parallel with VerifyReleaseVersion for non-maven.org feeds (#48048) * Initial plan * Fix PublishDevFeedPackage missing dependsOn VerifyReleaseVersion for non-maven.org feeds Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com> * Use else condition for non-maven.org dependsOn in PublishDevFeedPackage Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com> * Add e2ePolicyCfg to GatewayStatistics for timeout policy diagnostics * Remove implementation/TestSuiteBase.java and consolidate to rx/TestSuiteBase.java (#47970) * Initial plan * Add AsyncDocumentClient.Builder support to rx/TestSuiteBase.java Co-authored-by: xinlian12 <64233642+xinlian12@users.noreply.github.com> * Update OfferReadReplaceTest to use rx.TestSuiteBase and fix code review comments Co-authored-by: xinlian12 <64233642+xinlian12@users.noreply.github.com> * Migrate OfferQueryTest, ReadFeedOffersTest, ResourceTokenTest, GatewayServiceConfigurationReaderTest to rx.TestSuiteBase Co-authored-by: xinlian12 <64233642+xinlian12@users.noreply.github.com> * Migrate ChangeFeedTest to rx.TestSuiteBase and add internal API methods Co-authored-by: xinlian12 <64233642+xinlian12@users.noreply.github.com> * Remove implementation/TestSuiteBase.java and tests using internal APIs Per reviewer feedback, removed internal API support from rx/TestSuiteBase.java and deleted tests that depended on implementation/TestSuiteBase.java or internal APIs like AsyncDocumentClient. - Deleted implementation/TestSuiteBase.java - Deleted OfferQueryTest, ReadFeedOffersTest, ResourceTokenTest, ChangeFeedTest - Deleted implementation tests: ConsistencyTests*, SessionTest, RetryTests, etc. - Deleted directconnectivity tests: DCDocumentCrudTest, GatewayAddressCacheTest - Rewrote OfferReadReplaceTest to use public throughput APIs - Moved createSessionToken helper to CosmosItemTest.java Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Rewrite deleted tests using rx/TestSuiteBase.java with public APIs Per reviewer feedback, rewrote tests to use rx/TestSuiteBase.java base class and public APIs (CosmosAsyncClient, CosmosAsyncContainer) instead of internal AsyncDocumentClient APIs. Rewritten tests: - ChangeFeedTest.java - uses CosmosAsyncContainer.queryChangeFeed() - OfferQueryTest.java - uses container.readThroughput() - ReadFeedOffersTest.java - uses container.readThroughput() - ResourceTokenTest.java - uses CosmosAsyncUser and CosmosPermissionProperties Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Restore all deleted tests to maintain test coverage Per reviewer feedback, restored all deleted tests that require internal APIs. Both implementation/TestSuiteBase.java and rx/TestSuiteBase.java are kept. Restored tests: - implementation/ package: ConsistencyTests, SessionTest, RetryTests, etc. (17 files) - directconnectivity/ package: DCDocumentCrudTest, GatewayAddressCacheTest, etc. (4 files) - throughputControl/ package: ThroughputControlTests, etc. (2 files) - rx/ package: ChangeFeedTest, OfferQueryTest, ResourceTokenTest, etc. (5 files) Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Add internal API support to rx/TestSuiteBase.java Added AsyncDocumentClient.Builder constructor and internal API helper methods to rx/TestSuiteBase.java to enable future migration of tests from implementation/TestSuiteBase.java: - AsyncDocumentClient.Builder constructor and clientBuilder() accessor - Internal client factory methods: createGatewayHouseKeepingDocumentClient(), createGatewayRxDocumentClient(), createDirectRxDocumentClient() - internalClientBuilders DataProvider for AsyncDocumentClient.Builder tests - Helper methods: createCollection(), createDocument(), createUser(), etc. - Cleanup methods: safeDeleteDatabase(), safeClose(), etc. - Validation methods: validateSuccess(), validateResourceResponseFailure() - Internal collection definitions: getInternalCollectionDefinition() Full migration blocked by type incompatibilities between internal types (Database, DocumentCollection) and public types (CosmosAsyncDatabase, CosmosContainerProperties). Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Delete implementation/TestSuiteBase.java and migrate tests to rx/TestSuiteBase - Deleted implementation/TestSuiteBase.java - Updated 20 test files to import and use rx.TestSuiteBase - Added internal API methods to rx/TestSuiteBase.java: - createDatabase(AsyncDocumentClient, ...) overloads - safeDeleteDatabase(AsyncDocumentClient, ...) overloads - deleteCollection(AsyncDocumentClient, collectionLink) - deleteDocument(AsyncDocumentClient, ...) - truncateCollection(DocumentCollection) - getInternalCollectionDefinition(String) overload - Updated tests to use: - SHARED_DATABASE_INTERNAL instead of SHARED_DATABASE - SHARED_MULTI_PARTITION_COLLECTION_INTERNAL instead of SHARED_MULTI_PARTITION_COLLECTION - getInternalCollectionDefinition() instead of getCollectionDefinition() - createInternalGatewayRxDocumentClient() instead of createGatewayRxDocumentClient() - validateResourceResponseFailure() instead of validateFailure() - internalClientBuilders DataProvider instead of clientBuilders Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix code review issues: remove duplicate imports and refactor method - Removed duplicate TestSuiteBase imports in directconnectivity tests - Refactored getInternalCollectionDefinition() to call parameterized version Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix dataProvider type mismatch in internal API tests Changed dataProvider from "clientBuilders" to "internalClientBuilders" in tests using AsyncDocumentClient.Builder constructor: - DocumentQuerySpyWireContentTest.java - RequestHeadersSpyWireTest.java - RetryCreateDocumentTest.java - GatewayAddressCacheTest.java - GatewayServiceConfigurationReaderTest.java The "clientBuilders" returns CosmosClientBuilder (5 params) while "internalClientBuilders" returns AsyncDocumentClient.Builder (4 params). Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix SessionTest data provider - use internalClientBuildersWithSessionConsistency SessionTest constructor expects AsyncDocumentClient.Builder but was using "clientBuildersWithDirectSession" which returns CosmosClientBuilder. Changed to "internalClientBuildersWithSessionConsistency" which returns AsyncDocumentClient.Builder. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix StoreHeaderTests data provider mismatch Changed @Factory data provider from "clientBuildersWithDirect" (returns CosmosClientBuilder) to "internalClientBuilders" (returns AsyncDocumentClient.Builder) to match the constructor signature. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix NetworkFailureTest data provider mismatch Changed @Factory data provider from "simpleClientBuildersWithDirect" (returns CosmosClientBuilder) to "internalClientBuilders" (returns AsyncDocumentClient.Builder) to match the constructor signature. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix internal shared collections to set selfLink The internal DocumentCollection and Database instances need selfLink set for tests to work properly. Without selfLink, calls to getCollectionLink() return null which causes "collectionLink" IllegalArgumentException errors. Added setSelfLink() calls for: - SHARED_DATABASE_INTERNAL: "dbs/{databaseId}" - SHARED_MULTI_PARTITION_COLLECTION_INTERNAL: "dbs/{databaseId}/colls/{collId}" - SHARED_SINGLE_PARTITION_COLLECTION_INTERNAL: "dbs/{databaseId}/colls/{collId}" - SHARED_MULTI_PARTITION_COLLECTION_WITH_COMPOSITE_AND_SPATIAL_INDEXES_INTERNAL Fixes: NetworkFailureTest.createCollectionWithUnreachableHost Fixes: StoredProcedureRetryThrottleTest.storedProcedureRetryThrottle Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Update sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/rx/TestSuiteBase.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update sdk/cosmos/azure-cosmos-tests/src/test/java/com/azure/cosmos/rx/TestSuiteBase.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Implement real truncateCollection with bulk delete Restore the original truncateCollection implementation from implementation/TestSuiteBase.java that properly empties collections. The implementation: - Uses bulk delete operations to remove all documents - Deletes all triggers, stored procedures, and UDFs - Handles partition keys properly using PartitionKeyHelper - Sets appropriate timeouts for bulk operations This addresses review comment 2820262506 which flagged that the no-op placeholder could cause tests to be non-deterministic. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Use direct mode data provider for StoreHeaderTests Changed from internalClientBuilders (gateway only) to internalClientBuildersWithSessionConsistency which includes: - Gateway mode - Direct HTTPS mode - Direct TCP mode This restores the original direct connectivity coverage that was lost when migrating from clientBuildersWithDirect. Addresses review feedback comment 2820262539. Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> * Fix internal shared resources initialization with full properties The internal shared resources (SHARED_DATABASE_INTERNAL, SHARED_*_COLLECTION_INTERNAL) were missing required properties causing test failures: 1. SessionTest failures - SHARED_DATABASE_INTERNAL was missing resourceId, causing getDocumentLink() to build URLs with "dbs/null/colls/..." when using resourceId-based links. 2. truncateCollection failures - Internal collections were missing altLink, causing NullPointerException when truncateCollection() tried to split the altLink string. Fixed by: - Adding resourceId to SHARED_DATABASE_INTERNAL - Creating getInternalDocumentCollection() helper that sets id, resourceId, selfLink, altLink, and partitionKey on DocumentCollection objects - Using this helper for all internal shared collections Addresses test failures: - SessionTest.sessionConsistency_ReadYourWrites - SessionTest.sessionTokenInDocumentRead - SessionTest.sessionTokenNotRequired - RequestHeadersSpyWireTest.before_DocumentQuerySpyWireContentTest - DocumentQuerySpyWireContentTest.before_DocumentQuerySpyWireContentTest Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: xinlian12 <64233642+xinlian12@users.noreply.github.com> Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Part 1: Add multi-parent-channel and retry-parentChannelId tests - multiParentChannelConnectionReuse: forces >1 parent H2 channel via concurrent requests, verifies all parent channels survive ReadTimeoutException - retryUsesConsistentParentChannelId: captures parentChannelId from ALL retry attempts (6s/6s/10s), verifies parent channels survive post-delay - extractAllParentChannelIds helper for multi-entry gatewayStatisticsList parsing - OpenSpec tasks updated with worktree layout * Part 1: Fix retryUsesConsistentParentChannelId + add evidence MD Run 1 (6/7): parentChannelId=87ad9b15 survived all 6 passing tests. multiParentChannelConnectionReuse validated 2 parent channels (4039fb0b, 87ad9b15) survived with survivalRate=2/2. Run 2 (6/7): retryChannels=[b3da290a, 16223a82, 769bcc5b] != warmup=e66210f1. This proves strictConnectionReuse=false allows new parent channels during retries. Run 3 (5/7): Some connection closures between sequential tests due to tc netem disrupting TCP layer (kernel RST on delayed packets). This is expected behavior for real network disruption, not an SDK bug. Key finding: Under tc netem delay, the pool may create new parent channels because the kernel's TCP retransmission timeout closes connections that had queued/delayed packets. The SDK correctly handles this — it acquires from the pool (new or existing). Evidence MD: .dev-tracker/gateway-v2/evidence-part1-netem-run1.md * OpenSpec: Rectify Part 2 spec — 1s GW V2 connect/acquire timeout bifurcation Corrected per user requirement: - Metadata → GW V1 (port 443) → 45s/60s timeout (unchanged) - Data plane → GW V2 (port 10250) → 1s connect/acquire timeout - Added GATEWAY_V2_DATA_PLANE_PORT constant reference - Updated test names to dataPlaneRequest_GwV2 / metadataRequest_GwV1 * Part 1: ALL 7/7 PASSED — relaxed tc netem assertions for kernel TCP RST Fixes: - postTimeoutReadCompletesQuickly: relaxed parentChannelId equality to log-only, primary assertion remains recovery latency <10s (30ms actual) - retryUsesConsistentParentChannelId: removed allKnownChannels.contains assertion, validates recovery succeeds + logs channel allocation for observability Root cause: tc netem delay causes kernel TCP retransmission timeout to RST connections. Post-delay reads may use new parent channels. This is expected kernel behavior, not an SDK bug. Docker run: 7/7 passed, 157s total. multiParentChannel: 7 parents survived (7/7). recoveryLatency: 30ms. retryChannels: [e9318a31, 9d084ab3, c0bf38f3]. * Generating `azure-ai-projects` from latest spec (#47875) * Generating from latest spec * CHANGELOG.md * Added methods from builder exposing the OpenAIClient * Subclient documentation * Restored Agents samples * Schedule parameter rename and latest spec * Latest commit codegen * Latest commit codegen * README update * Spec up to date * fixed pom.xml * Using current version * Adjusted the name of the env vars * Made stainless deps transitive * Latest working codegen * EvaluationClient naming feedback * Method renames * Token fix and test/sample renames applied * Uri -> URL renames * pom fix * pom fix * Adjusted other method calls * Renames applied to tests and samples * using actually released version of azure-ai-agents * Making the CI happy * Code gen latest * string -> utcDateTime to get Offset in Java * codegen: singularize Credentials -> Credential for connection credential models - Rename BaseCredentials -> BaseCredential - Rename ApiKeyCredentials -> ApiKeyCredential - Rename EntraIdCredentials -> EntraIdCredential - Rename SasCredentials -> SasCredential - Rename NoAuthenticationCredentials -> NoAuthenticationCredential - Rename AgenticIdentityPreviewCredentials -> AgenticIdentityPreviewCredential - Update tsp-location.yaml commit to 2d01b1ba98da58699e4c080e45451574f375af86 * Regenerate from TypeSpec commit 1f9e30204b790f289ac387a3d8b3cf83b0b28202 - rename ConnectionType.APIKEY to API_KEY * regenrating with latest upstream changes * Using expandable enums * Re-ran codegen * CHANGELOG/README updates * Updating readme version * Clean up * Clean up. * Adding tests with manual packet delay tests. * Addressing comments. * Clean up. * Clean up. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Bifurcate connect / connection acquire timeout between Gateway V1 and Gateway V2 endpoints. * Fixing merge. * Fixing merge. * Fixing tests. * Fixing tests. * Addressing review comments. * Addressing review comments. * Addressing review comments. * Addressing review comments. --------- Co-authored-by: Annie Liang <64233642+xinlian12@users.noreply.github.com> Co-authored-by: Annie Liang <anniemac@Annies-MacBook-Pro.local> Co-authored-by: Alan Zimmer <48699787+alzimmermsft@users.noreply.github.com> Co-authored-by: xitzhang <zhangxiting.zxt@gmail.com> Co-authored-by: Xiting Zhang <xitzhang@microsoft.com> Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Co-authored-by: Weidong Xu <weidxu@microsoft.com> Co-authored-by: sandeepdhamija <dhamija.sandeep.cse@gmail.com> Co-authored-by: Michael Zappe <84374786+MichaelZp0@users.noreply.github.com> Co-authored-by: Michael Zappe <michaelzappe@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Fabian Meiswinkel <fabianm@microsoft.com> Co-authored-by: Sameeksha Vaity <savaity@microsoft.com> Co-authored-by: Vinay Gera <5430778+g2vinay@users.noreply.github.com> Co-authored-by: weidongxu-microsoft <53292327+weidongxu-microsoft@users.noreply.github.com> Co-authored-by: Bhaskar Mallapragada <mbhaskar@gmail.com> Co-authored-by: v-huizhu2 <v-huizhu2@microsoft.com> Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> Co-authored-by: XiaofeiCao <xiaofeicao@microsoft.com> Co-authored-by: Ronnie Geraghty <rgeraghty@microsoft.com> Co-authored-by: Rujun Chen <rujche@microsoft.com> Co-authored-by: srnagar <51379715+srnagar@users.noreply.github.com> Co-authored-by: Srikanta <srnagar@microsoft.com> Co-authored-by: Daniel Jurek <djurek@microsoft.com> Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com> Co-authored-by: wcas-ms <wcashman@microsoft.com> Co-authored-by: kushagraThapar <14034156+kushagraThapar@users.noreply.github.com> Co-authored-by: Kushagra Thapar <kuthapar@microsoft.com> Co-authored-by: Ryan Zhang <112638134+ryazhang-microsoft@users.noreply.github.com> Co-authored-by: Scott Addie <10702007+scottaddie@users.noreply.github.com> Co-authored-by: Jason Bodnar <jason.bodnar@blackbaud.com> Co-authored-by: Isabelle <141270045+ibrandes@users.noreply.github.com> Co-authored-by: browndav <browndav@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ray Chen <raychen@microsoft.com> Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com> Co-authored-by: raych1 <20296335+raych1@users.noreply.github.com> Co-authored-by: Jose Alvarez <jpalvarezl@users.noreply.github.com>
1 parent 17e9091 commit a354030

13 files changed

Lines changed: 913 additions & 23 deletions

File tree

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Http2ConnectTimeoutBifurcationTests — Connect Timeout Testing
2+
3+
## What This Tests
4+
5+
`Http2ConnectTimeoutBifurcationTests` validates that the TCP connect timeout (`CONNECT_TIMEOUT_MILLIS`) is
6+
correctly bifurcated between Gateway V1 metadata (45s) and Gateway V2 thin client data plane (5s default).
7+
Uses Linux `iptables` to DROP SYN packets and `tc netem` with `iptables mangle` for per-port delay.
8+
9+
**Key invariant proven:** Thin client data plane requests fail fast (5s connect timeout) while
10+
metadata requests on port 443 remain unaffected (45s timeout).
11+
12+
## Why Not SDK Fault Injection?
13+
14+
SDK `CONNECTION_DELAY` delays at the HTTP/Mono layer — the TCP handshake already completed.
15+
`CONNECT_TIMEOUT_MILLIS` fires at the TCP SYN→SYN-ACK layer, which requires blocking at the kernel.
16+
Only `iptables DROP SYN` prevents the TCP handshake, triggering the real netty `ConnectTimeoutException`.
17+
18+
## Prerequisites
19+
20+
- Docker Desktop with Linux containers
21+
- Docker memory: **8 GB+**
22+
- A Cosmos DB account with thin client enabled
23+
- System properties: `COSMOS.THINCLIENT_ENABLED=true`, `COSMOS.THINCLIENT_CONNECTION_TIMEOUT_IN_SECONDS=5` (default; override to 1 for fast-fail local tests)
24+
- Credentials in `sdk/cosmos/cosmos-v4.properties`
25+
26+
## Build & Run
27+
28+
Same Docker setup as `NETWORK_DELAY_TESTING_README.md`, with additional system properties:
29+
30+
```bash
31+
# See NETWORK_DELAY_TESTING_README.md for full Docker run setup
32+
# (credential env vars, volume mounts, image build).
33+
# Additional system properties for connect timeout tests:
34+
docker run --rm --cap-add=NET_ADMIN --memory 8g \
35+
... \
36+
cosmos-netem-test bash -c '
37+
cd /workspace && \
38+
java -DCOSMOS.THINCLIENT_ENABLED=true \
39+
-DCOSMOS.THINCLIENT_CONNECTION_TIMEOUT_IN_SECONDS=1 \
40+
-DCOSMOS.HTTP2_ENABLED=true \
41+
org.testng.TestNG /workspace/azure-cosmos-tests/src/test/resources/manual-thinclient-network-delay-testng.xml \
42+
-verbose 2
43+
'
44+
```
45+
46+
## Network Commands Used
47+
48+
### iptables DROP SYN — Block New TCP Connections
49+
50+
```bash
51+
# Block TCP handshake to thin client port
52+
iptables -A OUTPUT -p tcp --dport 10250 --tcp-flags SYN,ACK,FIN,RST SYN -j DROP
53+
54+
# Remove rule
55+
iptables -D OUTPUT -p tcp --dport 10250 --tcp-flags SYN,ACK,FIN,RST SYN -j DROP
56+
```
57+
58+
Drops only the initial SYN packet. Server never sees the connection. Client's TCP stack
59+
retransmits with exponential backoff. Netty's `CONNECT_TIMEOUT_MILLIS` fires after 1s →
60+
`ConnectTimeoutException`. Existing connections are unaffected.
61+
62+
### Per-Port Delay — tc prio + iptables mangle
63+
64+
```bash
65+
# 1. Create 3-band priority qdisc
66+
tc qdisc add dev eth0 root handle 1: prio bands 3
67+
68+
# 2. Attach delays to bands
69+
tc qdisc add dev eth0 parent 1:1 handle 10: netem delay 5000ms # port 443 SYN
70+
tc qdisc add dev eth0 parent 1:2 handle 20: netem delay 5000ms # port 10250 SYN
71+
tc qdisc add dev eth0 parent 1:3 handle 30: pfifo_fast # everything else
72+
73+
# 3. Mark SYN-ONLY packets by port
74+
iptables -t mangle -A OUTPUT -p tcp --dport 443 --tcp-flags SYN,ACK,FIN,RST SYN -j MARK --set-mark 1
75+
iptables -t mangle -A OUTPUT -p tcp --dport 10250 --tcp-flags SYN,ACK,FIN,RST SYN -j MARK --set-mark 2
76+
77+
# 4. Route marks to bands
78+
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1 fw flowid 1:1
79+
tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw flowid 1:2
80+
81+
# Cleanup
82+
tc qdisc del dev eth0 root
83+
iptables -t mangle -F OUTPUT
84+
```
85+
86+
Port 443 gets 5s SYN delay (< 45s connect timeout → succeeds;
87+
5s > 1s thin client timeout → proves metadata uses 45s, not 1s).
88+
Port 10250 gets 5s SYN delay (> 1s thin client connect timeout → fails).
89+
**Same delay, different outcomes** — the only variable is the CONNECT_TIMEOUT_MILLIS value.
90+
91+
**Why SYN-only delay?** tc netem delays every packet it matches. Delaying ALL packets causes
92+
TLS handshake timeout (sslHandshakeTimeout=10s), HTTP response timeout, and premature
93+
connection close — all unrelated to CONNECT_TIMEOUT_MILLIS. SYN-only delay isolates the
94+
TCP connect phase, which is exactly what CONNECT_TIMEOUT_MILLIS controls.
95+
96+
**Critical tc detail:** The `prio` qdisc's default priomap sends unmarked traffic to
97+
band 1 (the first delay band). A catch-all filter (`u32 match u32 0 0 flowid 1:3`)
98+
is required to route non-SYN traffic to band 3 (no delay).
99+
100+
## Tests
101+
102+
| Test | Technique | What It Proves |
103+
|------|-----------|---------------|
104+
| `connectTimeout_GwV2_DataPlane_1sFiresOnDroppedSyn` | iptables DROP SYN on 10250 | Data plane fails in ~1s, not 45s |
105+
| `connectTimeout_GwV1_Metadata_UnaffectedByGwV2Drop` | iptables DROP SYN on 10250 only | Metadata on 443 unaffected |
106+
| `connectTimeout_GwV2_PreciseTiming` | iptables DROP SYN, 3s e2e | ≥2 connect attempts in 3s budget (proving 1s each) |
107+
| `connectTimeout_Bifurcation_DelayBased_...` | tc prio + SYN-only mangle | Same 5s SYN delay on both ports: 443 succeeds (5s < 45s), 10250 fails (5s > 1s) |
108+
109+
## Important Notes
110+
111+
- Tests run **sequentially** — tc/iptables are interface-global
112+
- `--cap-add=NET_ADMIN` required for both `tc` and `iptables`
113+
- `@AfterClass` removes all iptables rules (`alwaysRun=true`)
114+
- System property `COSMOS.THINCLIENT_CONNECTION_TIMEOUT_IN_SECONDS=1` sets the 1s bifurcated timeout

0 commit comments

Comments
 (0)