Skip to content

fix(runtime): recapture late-bound DDSes during attach - #28229

Draft
shlevari wants to merge 2 commits into
microsoft:mainfrom
shlevari:wi76716-global-attach-fix
Draft

shlevari wants to merge 2 commits into
microsoft:mainfrom
shlevari:wi76716-global-attach-fix

Conversation

@shlevari

@shlevari shlevari commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes AB#76716, where a remote client can fail with Channel context not found after a detached container is attached.

Data stores are captured sequentially when producing the attach summary. Summarizing a later data store can bind a DDS owned by an earlier, already-captured data store through normal handle serialization. The DDS then becomes visible and sends ops after attach, but remote clients never received it in the earlier data store's snapshot.

This change:

  • Tracks changes to each data store's bound DDS set and recaptures stale data stores until the container-wide attach summary stabilizes.
  • Conservatively stabilizes older data store runtimes that do not expose the new version capability.
  • Captures per-data-store summary and GC data coherently.
  • Replaces the opaque missing-channel assert with a DataProcessingError containing actionable diagnostics.

The end-to-end regression uses ordinary SharedMap handles across two data stores. It fails on the previous implementation with Channel context not found and passes with this change.

Reviewer Guidance

The review process is outlined in the pull request guidelines.

The key logic is the fixed-point attach capture in ChannelCollection. Please review the versioned path, the fingerprint fallback for legacy runtimes, and the producer-side stabilization guard.

shlevari and others added 2 commits September 11, 2026 15:18
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added area: tools area: runtime Runtime related issues area: repo Repo related work base: main PRs targeted against main branch area: website area: tests Tests to add, test infrastructure improvements, etc changeset-present labels Sep 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Hi! Thank you for opening this PR. Want me to review it?

Based on the diff (2060 lines, 13 files), I've queued these reviewers:

  • Correctness — logic errors, race conditions, lifecycle issues
  • Security — vulnerabilities, secret exposure, injection
  • API Compatibility — breaking changes, release tags, type design
  • Performance — algorithmic regressions, memory leaks
  • Testing — coverage gaps, hollow tests

How this works

  • Adjust the reviewer set by ticking/unticking boxes above. Reviewer toggles alone don't trigger anything.

  • Tick Start review below to dispatch the review fleet.

  • After review finishes, tick Start review again to request another run — it auto-resets after each dispatch.

  • This comment updates as new commits land; your reviewer selections are preserved.

  • Start review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: repo Repo related work area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc area: tools area: website base: main PRs targeted against main branch changeset-present

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant