Skip to content

chore: update brpc for eventfd worker wakeup - #540

Merged
thweetkomputer merged 7 commits into
mainfrom
agent/test-brpc-eventfd-wakeup
Aug 4, 2026
Merged

chore: update brpc for eventfd worker wakeup#540
thweetkomputer merged 7 commits into
mainfrom
agent/test-brpc-eventfd-wakeup

Conversation

@thweetkomputer

@thweetkomputer thweetkomputer commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Context

Consume the eventfd worker-wakeup support merged in eloqdata/brpc#25 and run it through Data Substrate's CI matrices.

Changes

  • Advance third_party/src/brpc to c12822d4931a59a9c2cc42df061975e114e93590 on brpc master.
  • Remove retained submodules from third_party/manifest.yml; .gitmodules and
    gitlinks are now their repository and version sources of truth.
  • Scan indexed third_party/src entries for mode 160000 and include those
    gitlink SHAs in the CI third-party cache key.

There is no Data Substrate API, transaction, durability, recovery, or data-format change.

Validation

git diff --check origin/main...HEAD
PASS

The full build and test matrix is running in this PR's CI. Parent integration runs in EloqKV #554 and EloqDoc #487.

Risk and rollback

Risk is limited to brpc worker idle waiting and shutdown when io_uring is enabled. Non-io_uring processes retain the condition-variable path. Revert this PR to restore the previous brpc gitlink and manifest pin.

Reviewer guide

Verify third_party/src/brpc at brpc master commit c12822d4931a59a9c2cc42df061975e114e93590, and review .github/actions/setup-third-party/action.yml for mode-160000 gitlink hashing. Functional review is in the merged brpc PR #25.

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The pull request updates the brpc dependency manifest and submodule pointer to commit c12822d4931a59a9c2cc42df061975e114e93590 on master.

Changes

brpc dependency update

Layer / File(s) Summary
Update brpc reference
third_party/manifest.yml, third_party/src/brpc
The manifest now tracks master at the new brpc commit. The submodule pointer matches that commit.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Poem

A rabbit checks the pointer bright,
brpc hops to newer code tonight.
The manifest and submodule agree,
One fresh commit as clear as can be.
Nibble, build, and run with glee!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the brpc dependency update and its eventfd worker-wakeup purpose.
Description check ✅ Passed The description covers context, changes, validation, risk, rollback, and reviewer guidance, with only some template sections omitted.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/test-brpc-eventfd-wakeup

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thweetkomputer
thweetkomputer force-pushed the agent/test-brpc-eventfd-wakeup branch from 021556b to 8d0f325 Compare August 4, 2026 04:03
@thweetkomputer
thweetkomputer marked this pull request as ready for review August 4, 2026 06:58

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@third_party/manifest.yml`:
- Around line 46-47: Update the brpc revision in third_party/manifest.yml from
c12822d4931a59a9c2cc42df061975e114e93590 to
a192af98010f873f669652aa5d07c31ceee19521, and align the corresponding brpc
gitlink in .gitmodules with the same commit so scripts/third_party/fetch.sh
checks out the intended worker-wakeup implementation.
- Around line 46-47: Document the compatibility constraint for the pinned bRPC
commit c12822d4931a59a9c2cc42df061975e114e93590 in the manifest or its brpc
documentation entry. State that it enables io_uring eventfd worker wakeups,
while non-io_uring processes retain the legacy polling/condition-variable path,
and include the amd64 and arm64 CI matrices validating both paths.

In `@third_party/src/brpc`:
- Line 1: Update the brpc gitlink at third_party/src/brpc and its corresponding
pin in manifest.yml to the authoritative SHA
a192af98010f873f669652aa5d07c31ceee19521, replacing
c12822d4931a59a9c2cc42df061975e114e93590, then verify both locations match.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c0977e7-4be9-41b5-a6a3-e739af3e76bd

📥 Commits

Reviewing files that changed from the base of the PR and between 7594142 and 207f289.

📒 Files selected for processing (2)
  • third_party/manifest.yml
  • third_party/src/brpc

Comment thread third_party/manifest.yml Outdated
Comment thread third_party/src/brpc
@@ -1 +1 @@
Subproject commit 342603c95c33b8e03a89ca222c62d0e5e1263713
Subproject commit c12822d4931a59a9c2cc42df061975e114e93590

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

expected='a192af98010f873f669652aa5d07c31ceee19521'

test "$(git rev-parse HEAD:third_party/src/brpc)" = "$expected"
test "$(git -C third_party/src/brpc rev-parse HEAD)" = "$expected"
git -C third_party/src/brpc cat-file -e "$expected^{commit}"

rg -n -C 4 'brpc|a192af98010f873f669652aa5d07c31ceee19521|c12822d4931a59a9c2cc42df061975e114e93590' third_party/manifest.yml

Repository: eloqdata/tx_service

Length of output: 157


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf 'Gitlink in tree:\n'
git ls-tree HEAD third_party/src/brpc || true

printf '\nBare gitlink from current index:\n'
git cat-file -t HEAD:third_party/src/brpc && git cat-file -p HEAD:third_party/src/brpc

printf '\nSubmodule working tree gitlink status:\n'
(test -d .git/modules/third_party/src/brpc && git -C .git/modules/third_party/src/brpc rev-parse HEAD) || true
(test -d .git/modules/third_party/src/brpc && git -C .git/modules/third_party/src/brpc rev-parse HEAD 2>/dev/null | tee /tmp/actual_brpc_sha) || true

printf '\nCommit existence checks:\n'
for sha in c12822d4931a59a9c2cc42df061975e114e93590 a192af98010f873f669652aa5d07c31ceee19521; do
  printf '%s: ' "$sha"
  git cat-file -e "$sha^{commit}" 2>/dev/null && echo existing || echo missing
done

printf '\nManifest occurrences:\n'
git ls-files | rg '(^|/)third_party/manifest\.ya?ml$|brpc' || true
if [ -f third_party/manifest.yml ]; then
  rg -n -C 3 'brpc|a192af98010f873f669652aa5d07c31ceee19521|c12822d4931a59a9c2cc42df061975e114e93590' third_party/manifest.yml || true
fi

Repository: eloqdata/tx_service

Length of output: 1611


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf 'Submodule remote config:\n'
git submodule status --init 2>&1 || true
git config --file .gitmodules --get-regexp 'submodule\.third_party/src/brpc\..*' || true
git config --show-proxy .remote.origin.url || true

printf '\nFetch upstream brpc refs for target commits if reachable:\n'
git ls-remote --exit-code https://github.com/eloqdata/brpc.git \
  c12822d4931a59a9c2cc42df061975e114e93590 \
  a192af98010f873f669652aa5d07c31ceee19521 \
  refs/heads/master \
  refs/tags/* 2>&1 || true

printf '\nShort submodule diff around third_party/src:\n'
git diff --shortstat HEAD^..HEAD 2>/dev/null || true
git diff --stat -- third_party/src/brpc third_party/manifest.yml 2>/dev/null || true

Repository: eloqdata/tx_service

Length of output: 4713


Align the brpc pin with the PR objective before merge.

The gitlink at third_party/src/brpc and third_party/manifest.yml:47 both record c12822d4931a59a9c2cc42df061975e114e93590, while the PR objective uses a192af98010f873f669652aa5d07c31ceee19521. Use the authoritive SHA across both locations, then re-check the manifest pin.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@third_party/src/brpc` at line 1, Update the brpc gitlink at
third_party/src/brpc and its corresponding pin in manifest.yml to the
authoritative SHA a192af98010f873f669652aa5d07c31ceee19521, replacing
c12822d4931a59a9c2cc42df061975e114e93590, then verify both locations match.

@thweetkomputer thweetkomputer changed the title test: validate brpc eventfd worker wakeup chore: update brpc for eventfd worker wakeup Aug 4, 2026
@thweetkomputer
thweetkomputer merged commit 39171c9 into main Aug 4, 2026
10 checks passed
@thweetkomputer
thweetkomputer deleted the agent/test-brpc-eventfd-wakeup branch August 4, 2026 08:53
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