Skip to content

test(dynamodb): bound paginated conformance setup - #11422

Merged
ReubenBond merged 2 commits into
dotnet:mainfrom
ReubenBond:rb-issue-11407-dynamodb-conformance-timeout
Oct 7, 2026
Merged

ReubenBond merged 2 commits into
dotnet:mainfrom
ReubenBond:rb-issue-11407-dynamodb-conformance-timeout

Conversation

@ReubenBond

@ReubenBond ReubenBond commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Problem

The DynamoDB concurrent full-read conformance test seeds 4,096 rows so reads cross DynamoDB's 1 MiB page boundary. After #11389 replaced point reads with full snapshots, setup became quadratic and observed 8,398,848 rows. The net8 CI job exhausted the TestKit's five-minute scenario budget during preparation, while net10 completed near the same boundary.

Solution

Add an additive TestKit constructor overload which configures seeded row payload size for byte-paginated providers. Configure DynamoDB to use 48 rows with 40 KiB padding, preserving real multi-page reads with substantial headroom after cleanup while reducing setup work by orders of magnitude.

Keep deterministic inter-page mutation coverage in ReadAllRetriesWhenCanonicalMutationCrossesPages, and add focused guards for padding, bounds, and the post-cleanup page-size invariant. The generated TestKit API surface includes the new overload.

Fixes #11407

Copilot AI balanced review requested due to automatic review settings October 7, 2026 08:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The bounded workload retains multi-page coverage and is supported by focused validation and invariant tests.

Review effort: Balanced
Findings: None

What changed in this PR

Bounds DynamoDB conformance setup while preserving real multi-page snapshot coverage.

Changes:

  • Adds internal row-padding workload control and validation.
  • Reduces DynamoDB setup to 48 padded rows.
  • Adds padding, bounds, and post-cleanup pagination tests.
File Description
test/​Orleans.Runtime.Internal.Tests/​MembershipTests/​MembershipTableConformanceTestsBase.cs Passes provider-specific padding into the runner.
test/​Orleans.Clustering.TestKit.Tests/​MembershipTableTestFixtureTests.cs Tests padding bounds.
test/​Orleans.Clustering.TestKit.Tests/​MembershipTableConformanceTests.cs Verifies seeded hostname padding.
test/​Extensions/​Orleans.AWS.Tests/​MembershipTests/​DynamoDBMembershipTableUnitTests.cs Guards the post-cleanup page-size invariant.
test/​Extensions/​Orleans.AWS.Tests/​MembershipTests/​DynamoDBMembershipTableTest.cs Configures the bounded DynamoDB workload.
src/​Orleans.Clustering.TestKit/​Orleans.Clustering.TestKit.csproj Grants internal access to runtime conformance tests.
src/​Orleans.Clustering.TestKit/​MembershipTableTestRunner.cs Implements validated internal row padding.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Copilot AI balanced review requested due to automatic review settings October 7, 2026 08:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The bounded setup preserves multi-page coverage and includes focused validation without introducing unresolved issues.

Review effort: Balanced
Findings: None

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Code coverage

Metric Pull request
Lines 83.23% (117,840 / 141,577)
Branches 72.70% (34,913 / 48,024)

Report-only conclusion: current-main baseline stale.

The newest successful coverage run tested 6bf11ad, not current main ec48d17.

Coverage combines every CI test matrix job, including providers, CodeGen, .NET 8/10, Linux, Windows, and macOS, using canonical physical source and branch identities.

The comparison remains report-only while normal line and branch variance is calibrated.

Coverage details

@ReubenBond
ReubenBond merged commit 3d64611 into dotnet:main Oct 7, 2026
92 checks passed
@ReubenBond
ReubenBond deleted the rb-issue-11407-dynamodb-conformance-timeout branch October 7, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test(dynamodb): investigate concurrent membership read conformance timeout

2 participants