Skip to content

Merge Apache master and resolve handshake Makefile conflict - #89

Merged
Spicy-cream merged 8 commits into
LinQuickDev:transport-handshakefrom
Spicy-cream:review/pr3535-flatbuffers-conflict
Oct 23, 2026
Merged

Spicy-cream merged 8 commits into
LinQuickDev:transport-handshakefrom
Spicy-cream:review/pr3535-flatbuffers-conflict

Conversation

@Spicy-cream

Copy link
Copy Markdown

Summary

Merge Apache brpc master 6ff47acf into transport-handshake to resolve the conflict affecting apache#3535.

Keep both Makefile changes:

  • Include src/brpc/handshake in the transport source directories.
  • Include src/brpc/flatbuffers only when WITH_FLATBUFFERS=1.

CI workflows and URMA documentation match Apache master. This merge adds no URMA handshake follow-up changes.

Validation

  • Release static library build.
  • Common transport handshake: 27 tests passed.
  • RDMA: 92 tests passed.
  • Shared-memory transport: 43 tests passed.
  • GNU Make dry-run/source discovery with FlatBuffers disabled and enabled.
  • Clean merge against Apache master.

Merging this PR updates the source branch of apache#3535.

chenBright and others added 8 commits October 22, 2026 14:04
* Fix flaky histogram window ut

* Fix flaky histogram window test by polling cumulative snapshot

* Make histogram window expiration test deterministic
* Add FlatBuffers message and service support

Add IOBuf-backed messages, allocator-aware builders, and stable service
descriptors. Preserve shared-buffer copy semantics and validate allocator,
parsing, descriptor, and ownership contracts with the core unit suite.

Keep FlatBuffers 25.2.10 support disabled by default across CMake, Make,
and Bazel. Isolate generated test headers and select matching GoogleTest
headers and libraries. Network transport and Channel/Server integration
remain in the follow-up PR.

* Add FlatBuffers service generator and acceptance tests

Generate service and stub bindings with the upstream FlatBuffers parser.
Match flatc type escaping, preserve schema service identities, and reject
collisions with schema declarations, generated API names, and reserved
C++ identifiers. Publish header/source pairs with locking and rollback.

Cover imported and nested schemas, compiler modes, relocation, concurrent
generation, failure recovery, and real runtime dispatch. Pass compiler
flags through acceptance checks and pin validation to flatc 25.2.10.

* Verify FlatBuffers support in Linux and macOS CI

Run the core unit suite, codegen acceptance, and runtime tests through a
shared verification entry. Pin FlatBuffers and GoogleTest sources and
reject empty or skipped core test runs.

Exercise GCC 11 and Clang 14 on Linux and Protobuf 21 and 29 on macOS.
Build checksum-pinned Gperftools in the Linux runner temporary directory
without libunwind to avoid conflicts with hosted runner packages.

* Document FlatBuffers support

Add Chinese and English guides for messages, builders, descriptors, and
service generation. Describe shared-buffer ownership, verification,
allocation failures, supported dependency versions, and build options.

Document generator naming rules, failure recovery, acceptance tests, and
the shared CI verification entry. Keep network transport and
Channel/Server integration explicitly outside this PR.

* Document using other FlatBuffers versions

Describe how to move off the default 25.2.10: build the target version
into a private prefix, update the runtime, generator, and codegen test
version checks, and rerun verify.sh against that prefix. Use 23.5.26 as
the worked example and limit it to CMake builds.

List FlatBuffers among the supported dependencies in the getting started
guides, following the format used for protobuf and libunwind.

---------

Co-authored-by: xulei25 <xulei25@baidu.com>
…#3637)

* Fix macOS futex wake accounting with per-waiter notifications

* Fix ut

* Guard macOS futex waiter cleanup and fix timeout test diagnostic
* Fix JSON parsing offsets at EOF

* Opt

* Fix ut
* Fix ResourcePool block item count race

* Optimize ResourcePool nitem publication
* fix(bthread): synchronize keytable pool access

Read pool pointers and the destroyed state under the existing rwlock. Keep only a boolean availability hint between the read and write lock sections, then recheck the pool state under the write lock.

Add coverage for concurrent borrowing, returning, and pool destruction, including reclamation of tables returned after destruction.

* test(bthread): ensure keytable return after pool destruction

* test(bthread): isolate keytable pool test flag
@Spicy-cream
Spicy-cream merged commit bacfda1 into LinQuickDev:transport-handshake Oct 23, 2026
1 check passed
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.

5 participants