Skip to content

Finish ReadYourWrites.actor.cpp coroutine conversion#13377

Open
tclinkenbeard-oai wants to merge 2 commits into
apple:mainfrom
tclinkenbeard-oai:dev/tclinkenbeard/read-your-writes-coroutines-20260622
Open

Finish ReadYourWrites.actor.cpp coroutine conversion#13377
tclinkenbeard-oai wants to merge 2 commits into
apple:mainfrom
tclinkenbeard-oai:dev/tclinkenbeard/read-your-writes-coroutines-20260622

Conversation

@tclinkenbeard-oai

Copy link
Copy Markdown
Collaborator

This PR uses the actor rewrite tool and the waitOrError generic actor to finish the ReadYourWrites.actor.cpp coroutine conversion

@tclinkenbeard-oai tclinkenbeard-oai left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Generated by Codex.

What is it trying to do?

Finish converting ReadYourWrites.actor.cpp to standard C++ coroutines, remove the actor compiler include, rename it to ReadYourWrites.cpp, and update design-doc references.

Is it correct?

The code appears correct by inspection. waitOrError preserves the original read-first choose ordering and reset error propagation. The iterator locals remain alive across co_await, and conflict-range insertion stays on the successful-read path. The removed trailing co_return; statements are equivalent to falling off the end of Future<Void> coroutines.

No serialized messages, durable formats, protocol boundaries, knobs, or status structures changed. The source glob picks up the renamed .cpp file.

No build or test validation was run. At review time, clang-format is green; Windows Boost CONFIG and FoundationDB CI builder/clang/clang-arm/clang-ide/macOS/cluster checks are still pending or in progress, with no visible failures.

Are there bugs?

I did not find any correctness bugs.

Are there omissions?

AGENTS.md:75 still references ReadYourWrites.actor.cpp; it should be updated to ReadYourWrites.cpp. This is documentation-only and does not block the change.

Are there better ways of doing things?

Update the remaining AGENTS.md filename reference in this PR. Otherwise, waitOrError is preferable to duplicating custom race/error handling in each coroutine.

Should this CL be LGTMd?

Yes, LGTM based on code inspection. I inspected the patch, waitOrError, reset completion paths, coroutine-local lifetimes, source discovery, and existing mapped-range coverage. The highest remaining risk is unvalidated constant-factor coroutine/wrapper overhead and reset-race behavior; merge should still wait for the pending CI checks.

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-clang-ide on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 0:29:25
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-macos-m1 on macOS 14.x

  • Commit ID: 042c893
  • Duration 0:32:26
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-clang-arm on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 0:46:53
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-clang on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 0:55:06
  • Result: ❌ FAILED
  • Error: Error while executing command: python3 -m joshua.joshua start --tarball $(find build_output/packages -name correctness\*.tar.gz) --username ${CORRECTNESS_USERNAME} --max-runs 10000. Reason: exit status 1
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 0:57:46
  • Result: ❌ FAILED
  • Error: Error while executing command: python3 -m joshua.joshua start --tarball $(find build_output/packages -name correctness\*.tar.gz) --username ${CORRECTNESS_USERNAME} --max-runs 10000. Reason: exit status 1
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-cluster-tests on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 1:05:11
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)
  • Cluster Test Logs zip file of the test logs (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-macos on macOS 14.x

  • Commit ID: 042c893
  • Duration 1:37:06
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr-clang on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 0:54:29
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci

Copy link
Copy Markdown
Contributor

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: 042c893
  • Duration 1:00:22
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

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.

2 participants