Skip to content

feat: add common transport-level handshake for RDMA and UBSHM - #47

Open
zchuango wants to merge 17 commits into
masterfrom
transport-handshake
Open

zchuango wants to merge 17 commits into
masterfrom
transport-handshake

Conversation

@zchuango

Copy link
Copy Markdown

No description provided.

Spicy-cream and others added 16 commits October 15, 2026 19:32
…lity

Resolve UBSHM handshake conflicts using the tested rebased tree. Retain backend-specific format negotiation, remote shared-memory lengths, and upstream IPC V2 tests.
Resolve current master conflicts and preserve UBSHM IPC V2 negotiation
Resolve master conflict and preserve shared memory name safety
…refresh

Resolve modular CMake conflict and preserve handshake protobuf generation
* 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
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.

6 participants