-
Notifications
You must be signed in to change notification settings - Fork 553
DDS Fuzz: Add Rollback #24930
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
anthony-murphy
wants to merge
109
commits into
microsoft:main
Choose a base branch
from
anthony-murphy:ddsfuzz/rollback
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
DDS Fuzz: Add Rollback #24930
Conversation
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
…to ic/reduce-stickiness
anthony-murphy
added a commit
that referenced
this pull request
Jul 3, 2025
This change implements local rollback in shared tree and adds some basic unit test for the scenario. This is modeled after the existing code for aborting a transaction, which behaves similarly. This is a precursor change to expanded fuzz coverage for rollback for all dds via the dds fuzz and incorporating tree into local server stress. There is a prototype of that here: #24930
…to ddsfuzz/rollback
4ab3dfa
to
5da1b88
Compare
…to ddsfuzz/rollback
MarioJGMsoft
pushed a commit
to MarioJGMsoft/FluidFramework
that referenced
this pull request
Jul 8, 2025
This change implements local rollback in shared tree and adds some basic unit test for the scenario. This is modeled after the existing code for aborting a transaction, which behaves similarly. This is a precursor change to expanded fuzz coverage for rollback for all dds via the dds fuzz and incorporating tree into local server stress. There is a prototype of that here: microsoft#24930
…to ddsfuzz/rollback
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output
|
sonalideshpandemsft
added a commit
that referenced
this pull request
Jul 29, 2025
Original PR: #24930 This PR is an initial checkin to add `rollbackProbability` flag. This disables the failing tests/seed from the original PR by setting rollbackProbability to 0, and corrects the Biome formatting issues. [Work items](https://dev.azure.com/fluidframework/internal/_workitems/edit/43924) have been opened to track and reenable the skipped tests. [ADO#43937](https://dev.azure.com/fluidframework/internal/_workitems/edit/43937) --------- Co-authored-by: Tony Murphy <anthony.murphy@microsoft.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area: dds: sharedstring
area: dds: tree
area: dds
Issues related to distributed data structures
area: runtime
Runtime related issues
base: main
PRs targeted against main branch
public api change
Changes to a public API
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.
This pull request introduces a new "rollback" operation to the DDS fuzz testing framework, along with supporting changes to the mock runtime utilities. The most notable updates include the addition of the
Rollback
interface, modifications to the operation generation logic, and enhancements to the mock container runtime to support manual flush mode for rollback operations.Changes to DDS Fuzz Testing Framework:
Rollback
operation type, including its interface (Rollback
) and integration into theHarnessOperation
union type. This allows the framework to simulate rollback scenarios during fuzz testing. [1] [2]rollbackProbability
option inDDSFuzzSuiteOptions
and set a default value of0.01
indefaultDDSFuzzSuiteOptions
. This determines the likelihood of triggering a rollback during fuzz testing. [1] [2]mixinRollback
function to extend the fuzz testing model with rollback functionality. This includes logic for generating rollback operations and applying them during state transitions.getFullModel
function to include the rollback mixin in the composition of the fuzz testing model.Changes to Mock Runtime Utilities:
MockContainerRuntime
class by adding arunWithManualFlush
method. This enables manual control over flush mode, allowing operations like rollback to be executed in a controlled environment.submit
method inMockContainerRuntime
to respect manual flush mode when active, ensuring rollback operations are handled correctly.